前言
在实际生产环境中工作中,为了安全,内网主机是无法连接外网的,开发同事在写Python相关程序时,需要安装大量开发所需的模块,如果单独安装模块的话,有可能会存在大量的依赖,需要一个一个查找并安装,操作起来相当麻烦,为解决这个问题,打算在本地搭建一套属于自己的Pypi本地源,下面是操作方法,其中Linux和Windows操作类似,这里以Linux为例进行操作。
一、安装python环境
这里就不介绍python环境的安装过程了,大家可以自己从外网上查找安装方法,也可以参照以下文档中第2.2小节进行操作:
安装Milvus向量数据库_milvus 安装-CSDN博客
二、工具选择
搭建Python的本地Pypi源的有很多工具,如:pypiserver,pip2pi,bandsnatch,其中 pypiserver 上手难度最小,使用方便,功能简单。后两个适用于搭建企业级的源,因为其拥有自动同步包的功能。
本次采用的是pypiserver进行安装。
三、下载pypiserver
pypiserver下载比较简单,使用pip进行安装即可,大家可以在安装好Python之后进行该软件的安装,也可以在Python的虚拟环境中进行安装。
Python虚拟环境安装与配置,可以参照以下文档中的其中一个即可:
如何利用virtualenv和python命令创建Python虚拟环境-CSDN博客
安装anaconda3虚拟环境_conda 23.7.4-CSDN博客
安装操作如下:
(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ pip install pypiserver
四、创建包目录
(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ cd /iwen
(iwen_search) [iwen@kylinv10-sp1-iwen iwen]$ mkdir packages
注:大家可以根据自己的实际需求进行目录的创建。
五、启动pypiserver服务
进入到新建的packages目录下执行pypi-server run进行启动即可。
(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ cd /iwen/packages
(iwen_search) [iwen@kylinv10-sp1-iwen packages]$ pypi-server run ./
如果大家想让它后台运行的话,运行pypi-server run时,后面加上&即可。
(iwen_search) [iwen@kylinv10-sp1-iwen packages]$ pypi-server run ./ &
注:启动时间相对来说会长一点,耐心等待即可。大家在当前目录下启动时,pypi-server run后面要加上./,否则就算启动成功了,也不能正常使用。
如果不加./启动成功后,访问的界面如下:
内容为空,并且使用curl命令也无法探测成功:
正常启动后,可以使用netstat -tnlp来查看pypi-server的启动占用端口情况,也可以使用ps -ef|grep pypi-server来查看启动情况。
如下图所示,其中标红部分是pypi-server的运行端口和进程:
六、访问和测试
6.1、浏览器访问
在浏览器在址栏中输入:http://ip:8080/simple即可访问查看,如下图所示:
6.2、包安装测试
通过安装一个包进行测试,查看本地pypi源是否生效。
(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip install -i http://192.168.10.4:8080/simple pillow
Looking in indexes: http://192.168.10.4:8080/simple
WARNING: The repository located at 192.168.10.4 is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host 192.168.10.4'.
ERROR: Could not find a version that satisfies the requirement pillow (from versions: none)
ERROR: No matching distribution found for pillow
在安装pillow时发现报错了,这个意思是说:pip不信任这个本地镜像源,如果要使用这个镜像源呢,可以加上“--trusted-host 192.168.10.4”。
再进行安装测试,安装成功:
(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip install -i http://192.168.10.4:8080/simple --trusted-host=192.168.10.4 pillow
Looking in indexes: http://192.168.10.4:8080/simple
Collecting pillowDownloading http://192.168.10.4:8080/packages/sentence-transformers/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.4 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 17.3 MB/s eta 0:00:00
Installing collected packages: pillow
Successfully installed pillow-11.0.0
(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip list|grep pillow
pillow 11.0.0
到此为之,Python的本地Pypi源搭建完成,每次把包下载到所建的目录下,并且在该目录下启动pypi-server后,即可使用该本地镜像源进行安装,并能解决所需的依赖问题。
本次搭建的本地Pypi源公供开发测试使用,如果想要搭建企业级的Pypi私有源,需要定时同步官方的源,建议使用bandsnatch进行搭建使用。如果大家有兴趣的话,可以自己研究一下bandsnatch的搭建和使用,以供大家一起学习。