使用Python搭建本地PyPi镜像源【教程】


文章目录

  • 一、PyPi
  • 二、配置步骤
  • 2.1 安装pip2pi
  • 2.2 下载模块包到本地
  • 2.3 创建链接
  • 2.4 部署web服务
  • 2.5 web访问
  • 三、使用本地镜像源来安装模块
  • 四、总结
  • 一、PyPi

    PyPi,Python Package Index,Python包索引,一般是指由Python社区维护的Python软件包仓库。
    常用的PyPi源有:

    官方:https://pypi.org/simple
    清华:https://pypi.tuna.tsinghua.edu.cn/simple
    百度:https://mirror.baidu.com/pypi/simple/
    阿里:https://mirrors.aliyun.com/pypi/simple/
    豆瓣:https://pypi.douban.com/simple/
    中科大:https://pypi.mirrors.ustc.edu.cn/simple/
    
    # 示例
    pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    本文主要是在本地搭建一个PyPi索引库,即:将网络上的Python包备份到本地并进行索引管理,然后局域网内部用户通过pip安装时指向本地镜像库,即可实现Python包的安装。

    二、配置步骤

    2.1 安装pip2pi

    首先安装pip2pi模块,其主要功能是将本地的模块包进行索引管理。

    [root@asdfv ~]# pip3 install pip2pi
    Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
    Collecting pip2pi
      Downloading http://mirrors.aliyun.com/pypi/packages/28/64/ad5b7479e68a503f8672fc152ecd97d5780aac86d9e93bebd5b70f38817f/pip2pi-0.8.2-py2.py3-none-any.whl
    Requirement already satisfied: pip>=1.1 in /usr/local/lib/python3.8/site-packages (from pip2pi) (19.2.3)
    Installing collected packages: pip2pi
    Successfully installed pip2pi-0.8.2
    

    2.2 下载模块包到本地

    下载模块包到本地,指定保存目录、特定模块以及下载源。

    [root@asdfv ~]# pip3 download -d ./pypi_packets/ numpy --trusted-host mirrors.aliyun.com
    

    2.3 创建链接

    通过dir2pi命令创建索引链接。

    dir2pi ./pypi_packets/
    

    在Windows下执行,会报错:
    ERROR linking …/…/Werkzeug-2.2.3-py3-none-any.whl to .\simple\werkzeug\Werkzeug-2.2.3-py3-none-any.whl (skipping): symbolic link privilege not held
    ERROR linking …/…/zipp-3.15.0-py3-none-any.whl to .\simple\zipp\zipp-3.15.0-py3-none-any.whl (skipping): symbolic link privilege not held

    解决:将simple下每个包目录中的index.html文件源码中href链接增加两级上级目录 …/…/,以供页面能访问到

    sed -i "s#href='#href='../../#g" */index.html
    

    2.4 部署web服务

    部署Nginx或Apache HTTP,或可直接用python -m http.server 8000来进行简单的访问测试。

    2.5 web访问

    浏览器访问地址:http://127.0.0.1:8000/simple/

    三、使用本地镜像源来安装模块

    使用pip安装模块时,可通过-i选项来临时指定安装源为本地镜像源;
    另一种则是通过pip config set来设置全局url,即永久指定,指向本地镜像源,后续直接pip install即可。

    # 临时指定,并安装
    pip install xxx -i http://127.0.0.1:8000/simple/
    
    # 永久指定,并安装
    pip config set global.index-url http://127.0.0.1:8000/simple/
    pip install xxx
    

    若当前没有pip命令工具,则需要先进行安装:

    curl  https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
    python get-pip.py
    

    四、总结

    搭建本地PyPi镜像源,主要是便于局域网内部用户安装Python模块。配置流程不算复杂,按步进行即可。


    作者:道非凡

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用Python搭建本地PyPi镜像源【教程】

    发表回复