2

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

现在我使用distutils的 Eggs 很容易用 更新easy_install,但它仍然是一个手动过程,随着应用程序和客户端工作站数量的增长,它很快就会变得乏味。

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

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

4

1 回答 1

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
    

您还可以使用 .将您自己的索引镜像到远程主机pip2pi

于 2012-11-11T05:04:36.587 回答