因此,设置是在一个Linux机器(服务器)和一组Windows 7工作站(客户机)上运行的一系列专有服务器/客户机Python应用程序。一切都在顺利进行,直到任何专有的Python软件包需要更新。
目前我正在使用distutils
鸡蛋,这些鸡蛋很容易使用easy_install
进行更新,但它仍然是一个手动过程,随着应用程序和客户端工作站数量的增加,它会很快变得乏味。
理想的设置IMHO是在服务器上安装Python包,因此当在工作站上启动客户端应用程序时,客户端应用程序可以检查其当前的Python包是否是最新的。如果没有,客户端应用程序应从服务器下载较新的Python包,安装它,然后按正常方式启动。
这听起来对任何人都很熟悉吗?我自己试图找到替代品,但据我所知,没有Python模块提供此功能。有人为此有任何自制解决方案吗?
答案 0 :(得分:2)
是的! pip2pi
应该正是您正在寻找的。 p>
来自文档:
pip2pi从pip要求构建与PyPI兼容的包存储库
pip2pi
允许您使用两个简单的命令创建自己的PyPI索引:
要镜像包及其所有要求,请使用pip2tgz
:
$ cd /tmp/; mkdir package/
$ pip2tgz packages/ httpie==0.2
...
$ ls packages/
Pygments-1.5.tar.gz
httpie-0.2.0.tar.gz
requests-0.14.0.tar.gz
从上一个目录构建包索引:
$ ls packages/
bar-0.8.tar.gz
baz-0.3.tar.gz
foo-1.2.tar.gz
$ dir2pi packages/
$ find packages/
/httpie-0.2.0.tar.gz
/Pygments-1.5.tar.gz
/requests-0.14.0.tar.gz
/simple
/simple/httpie
/simple/httpie/httpie-0.2.0.tar.gz
/simple/Pygments
/simple/Pygments/Pygments-1.5.tar.gz
/simple/requests
/simple/requests/requests-0.14.0.tar.gz
要从步骤2中构建的索引进行安装,只需使用:
pip install --index-url=file:///tmp/packages/simple/ httpie==0.2
您还可以使用pip2pi
将自己的索引镜像到远程主机。