你如何托管自己的鸡蛋存储库?

时间:2009-10-05 11:43:21

标签: python

假设您正在一个维护大量内部python库(鸡蛋)的团队中,无论出于何种原因,将它们上传到pypi都不是一种选择。你怎么能主持这些库(鸡蛋),以便easy_install仍可以为团队成员服务?

如果这样做的话,基本上会很酷......

(someproj)uberdev@hackmo:~$ easy_install myproprietary.lib-dev
user: uberdev 
password:...
fetching......
Searching for myproprietary.lib-dev
Reading http://dev.mycompany.corp/myproprietary.lib-dev
Reading http://dev.mycompany.corp
Reading http://dev.mycompany.corp/dist
Best match: myproprietary.lib-dev
Downloading http://dev.mycompany.corp/dist/myproprietary.lib-dev

我想有一些可以安装的服务器,但我很感谢专家对此事的一些指导。

由于

4 个答案:

答案 0 :(得分:8)

将所有鸡蛋部署到所有开发者的目录中。可以到达(例如在网络服务器上)。

要从该目录安装鸡蛋,请输入:

$ easy_install -H None -f http://server/vdir TheEggToInstall

$ easy_install -H None -f /path/to/directory TheEggToInstall

-H None表示不允许从任何主机下载鸡蛋(-f中指定的那个除外)。

目录可以通过http访问,也可以是您安装的目录(NFS,Windows共享等)。也许甚至FTP工作?

easy_install documentation包含有关此内容的信息。

答案 1 :(得分:3)

如果你的团队是分布式的 - 并且在说话方面 - 那么一个简单的subversion subversion存储库比其他类型的服务器更好。

只需创建项目并让每个人都结帐。当事情发生变化时,请告诉他们更新。

如果您的团队位于同一地点 - 并且根据演讲条款 - 那么与“官方”图书馆共享的驱动器也可以正常运行。只需安装它并将其包含在PYTHONPATH上即可。

如果您想要本地化副本,请在subversion(或共享驱动器)中提供具有良好setup.py文件的官方来源。他们只需要CD到目录并运行python setup.py install,其他一切都会发生。它比easy_install更简单,因为setup.py已经是Python发行版的一部分。

鸡蛋适合没有说话的人。

您的团队成员通常会说话,不需要增加鸡蛋的复杂性。基本的setup.py就足够了。

答案 2 :(得分:2)

我使用ClueReleaseManager

  

ClueReleaseManager是PyPi服务器后端的实现   由http://pypi.python.org提供。它使用SQLAlchemy(在...之上)   默认情况下为sqlite)存储所有项目元数据和文件系统   用于存储项目文件。

答案 3 :(得分:1)

首先:如果软件包是通用的,那么应该公开提供软件包,而不是将软件包上传到PyPI通常是个坏主意,因为easy_installing依赖于你的软件包的软件包意味着你的egg服务器需要启动和运行,以及PyPI。对于每个涉及的服务器,您都会遇到更多的单点故障。

但是如果它是私有软件包,甚至不应该在PyPI上列出,或者软件包仅作为大型系统的一部分有用,比如Plone,那么这是另一回事。然后你想要easy__install和buildout等来查找服务器上的鸡蛋。这样做非常简单。您只需将egg目录放在Web服务器上,并使用-f参数指向该目录,以便easy_install。

以下是此类存储库的示例:http://dist.plone.org/release/3.3.1/