我正在尝试找到一种为网络上的每台计算机缓存或存储某些python软件包的方法。我看过以下解决方案:
pypicache,但是它不再被积极开发,作者推荐devpi,请参见:https://bitbucket.org/micktwomey/pypicache/
proxypypi,但此处的作者还推荐devpi,请参见:https://bitbucket.org/r1chardj0n3s/proxypypi
devpi-为此,我遵循了quickstart guides之一,但这仅允许从localhost
访问,因此我尝试遵循permanent quickstart guide。尽管我不确定这里的部分内容,即:
使用virtualenv。没有解释这背后的原因,为什么不能正常安装呢? (如果您不是python打包程序,为什么要使用virtualenv?)
安装说明中已弃用的部分(使用--gendeploy
)。没有其他选择,我只是忽略它吗?似乎很重要。
为什么需要主管?
因此,我决定看一下pypiserver,它非常容易设置,我可以告诉pip使用-i
选项,但它似乎不会缓存任何程序包。如果我停止pypiserver,则pip install
会失败,因为它无法连接到它,这意味着它必须在使用它。除了不存储任何程序包。我最好的猜测是,它只是代理请求,而不是缓存下载。
有这样做的标准方法吗?我的目标是防止出现Internet连接断开或软件包删除的情况,以使网络上的客户端在发生任何一种情况时仍可以设置开发或生产机器,并加快设置开发或生产机器的速度。
我觉得devpi
和pypiserver
都是不错的选择,我似乎只是缺少一些使它们起作用的东西。
编辑:看来我对pypiserver
是正确的,因为它只是将请求代理到PyPI。它是用于上传您自己的软件包的,因此您可以从pypiserver
下载它们,但是如果您需要的是官方软件包,则可以从PyPI获得。
最佳答案
日前发布了新版本的Devpi。 The latest documentation已清除我的所有问题,因此我决定使用devpi-server 2.0.1
。 Devpi不仅为PyPI软件包提供了缓存代理,还允许您使用devpi-client
上传自定义软件包。由于不需要此功能,因此仅使用here所示的root/pypi
索引。尽管我遵循this page上的说明减去有关devpi-client
的最后一部分。
关于python - Python包代理/缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24751255/