【Python】【PyPi】搭建本地PyPi镜像源

2023-12-17 05:36:52

一、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模块。配置流程不算复杂,按步进行即可。


文章来源:https://blog.csdn.net/tianlong1929/article/details/135040131
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。