我有一个buildout
,其中包括三个python库的源库(它是一个Django web应用程序,有两个可重用的库)。从开发人员的角度来看,一切都很好,但是现在我想构建发行版进行部署。所以在我的构建.cfg我有:
[buildout]
parts =
django
develop =
src/lib1
src/lib2
src/django_app
eggs =
lib1
lib2
django_app
[django]
recipe = djangorecipe
...
eggs =
lib1
lib2
django_app
...
我如何告诉buildout将它们打包为鸡蛋,并将它们安装在例如eggs/
而不是{
我希望在构建完成后能够捕获lib1
和{python setup.py bdist_egg
,但看起来{
获取和安装鸡蛋不同于制作和托管,这就是为什么buildout本身不提供pypi服务器或类似的东西。在
所以。。。你必须自己制作合适的蛋/释放物,并把它们放在Builout可以找到的地方。在
我假设你的库有一个
setup.py
?为了获得一个好的版本,您需要更新版本号并在svn/hg/bzr/git中标记您的版本。(为了使这更简单、更省时,请看zest.releaser)。有几个pypi克隆可以在本地安装,也可以上载自定义包。但最简单的解决方案是在某个地方有一个包含发布版本的目录,并用apache或nginx托管它,请参见https://stackoverflow.com/a/13354463/27401。将该URL作为
[buildout]
部分添加为find-links = http://example.com/my_packages/
。Buildout现在将查看该页面内部(因此:请确保告诉apache列出该目录中的所有文件)。Setuptools使用标准命名方案(mypackage-1.2.zip
),这就是它的工作原理。剩下要做的就是将文件放入服务器上的apache/nginx目录。首先,一个简单的定制脚本就足够了。要获得更多的自动化,请查看tags2sdists。向它提供一个包含源包的目录和一个可以放置打包版本的目录。你知道,你甚至可以在你的构建中以
bin/tags2sdists src/ var/packages/
的形式运行它。这将从所有标记创建源包,并将它们放在var/packages/
中。之后把它们复制到别的地方。相关问题 更多 >
编程相关推荐