假设您正在一个维护大量内部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
我想有一些可以安装的服务器,但我很感谢专家对此事的一些指导。
由于
答案 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是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/