考虑到迁移性,建议使用容器性技术或者虚拟技术如docker或者vmware等。
本教程使用vmware方式建立虚拟机,提供本地镜像源服务
pip源镜像
pip自带一个pypi-server以及download命令,因此镜像起来也不麻烦
一般来说,最好你有一个需要镜像到本地的python包的清单,但是如果没有的话,也可以找一个镜像源站爬一个下来。
如去某云的pypi路径下面可以看到simple和package子目录,进入simple子目录可以看到有很多的python包,保存该网页,然后写脚本过滤,参考python脚本如下。
import re
indexfile = open("./Simple Index.htm")
outputfile = open("./indexes.output", "w")
indexes = indexfile.read()
result = re.findall(r'>([^<>\n]+)<', indexes)
for ele in result:
outputfile.write(ele+'\n')
indexfile.close()
outputfile.close()
然后就可以得到一个并不一定完全clean的python包列表,因为镜像源网站的维护人员可能在里面做了一些奇怪的事情,所以这些奇怪的东西,你需要在后面的步骤中发现,然后删除掉。
接下来,有了这个包的列表。我们可以建一个文件夹然后用pip把这些包全部都下载下来。
mkdir pip-mirror
cd pip-mirror
pip download -r ${PACKAGE_LIST}
${PACKAGE_LIST}是刚刚爬出来的清单列表。
接下来,下载完成之后,可以用pypi-server来开启一个pip源的服务器
nohup pypi-server -p 8080 ${MIRROR_ROOT} &
${MIRROR_ROOT}是刚才下载python包的位置,即pip-mirror
然后就可以用浏览器以及pip访问了。
客户端pip访问需要修改如下
mkdir ~/.pip
touch ~/.pip/pip.conf
在pip.conf中修改pip源为刚才配置的源所在服务器即可。