为客户端管理Python包有哪些替代方法?

时间:2012-11-11 04:57:10

标签: python distribution packages

因此,设置是在一个Linux机器(服务器)和一组Windows 7工作站(客户机)上运行的一系列专有服务器/客户机Python应用程序。一切都在顺利进行,直到任何专有的Python软件包需要更新。

目前我正在使用distutils鸡蛋,这些鸡蛋很容易使用easy_install进行更新,但它仍然是一个手动过程,随着应用程序和客户端工作站数量的增加,它会很快变得乏味。

理想的设置IMHO是在服务器上安装Python包,因此当在工作站上启动客户端应用程序时,客户端应用程序可以检查其当前的Python包是否是最新的。如果没有,客户端应用程序应从服务器下载较新的Python包,安装它,然后按正常方式启动。

这听起来对任何人都很熟悉吗?我自己试图找到替代品,但据我所知,没有Python模块提供此功能。有人为此有任何自制解决方案吗?

1 个答案:

答案 0 :(得分:2)

是的! pip2pi应该正是您正在寻找的。

来自文档:

  

pip2pi从pip要求构建与PyPI兼容的包存储库

pip2pi允许您使用两个简单的命令创建自己的PyPI索引:

  1. 要镜像包及其所有要求,请使用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
    
  2. 从上一个目录构建包索引:

    $ 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
    
  3. 要从步骤2中构建的索引进行安装,只需使用:

    pip install --index-url=file:///tmp/packages/simple/ httpie==0.2
    
  4. 您还可以使用pip2pi将自己的索引镜像到远程主机