在我的组织中,我们有几个内部开发的Python包。为了举例,我们将它们称为Foo和Bar。两者都是在单独的Git存储库中开发的。Foo是一个Pylons应用程序,它使用Bar中的某些库函数。两者都没有公开发行。在
当我们部署Foo时,我们通常从源代码管理中导出最新版本,并在我们的virtualenv中运行setup.py develop
。这行得通。在
问题是,我们需要某种方法为我们部署Foo的每个环境分配Bar。我们显然不能把“酒吧”放进去设置.py的install_需要(因为easy_install在任何网站上都找不到)。我找不到任何自动获取/安装私人开发的依赖项的方法。在
有没有更容易管理的方法?我觉得我错过了Python打包和分发的要点。在
在中使用setuptools时设置.pySVU可以指定安装HTTP包的位置:
http://peak.telecommunity.com/DevCenter/setuptools#dependencies-that-aren-t-in-pypi
您可以在某个“秘密”位置发布Bar,或者,我没有尝试过,但可能HTTP basic auth有效:
我们在我的操作系统中使用工具创建特定的包。我们碰巧使用RedHat,所以我们调用bdist_rpm来创建rpm包。我们发现这比eggs更好,因为我们可以在python和非python lib的包中进行依赖管理。在
我们在持续集成机器上创建RPM,然后将它们移动到一个YUM repo中,在那里可以通过YUM更新或升级将其推出。在
您可以创建包存储库。基本步骤如下:
请注意,Apache不一定是必需的,但是它会自动生成一个目录列表,easy_install可以处理这个列表。在
如果您使用的是buildout,那么有一些配置选项可以执行与-f相同的操作,而且我非常确定在pip中也可以使用一些东西。在
相关问题 更多 >
编程相关推荐