构建 - 从源代码安装鸡蛋
我有一个buildout
,它包含三个用于python库的源代码库(它是一个带有两个可重用库的Django网络应用程序)。从开发人员的角度来看,一切都很好,但现在我想构建要部署的发行版。所以在我的buildout.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
...
我如何告诉扩建打包那些鸡蛋和在例如安装它们eggs/
而不是develop-eggs/
作为链接回到源代码?
我想在扩建后能够做到的事情是捕获lib1
和lib2
的内置鸡蛋,并将它们上传到我当地的pypi回购站。我的替代方案是手动运行python setup.py bdist_egg
,但似乎buildout
应该已经知道这一点。
抓取和安装鸡蛋不同于制作和托管它们,这就是为什么buildout本身不提供pypi服务器或类似的东西。
所以......你自己必须做出适当的鸡蛋/发布,并将它们放置在可以找到它们的地方。
我假设你的图书馆有
setup.py
?对于一个好的版本,你需要更新版本号并在svn/hg/bzr/git中标记你的版本。 (为了使这更容易,更省时,请看zest.releaser)。有几个pypi克隆,您可以在本地安装,您可以上传自定义软件包。但最简单的解决方案是在某个目录中发布一个目录,并使用apache或nginx进行托管,请参阅https://*.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/
。之后将它们复制到其他地方。