从sou安装鸡蛋

2024-09-27 22:23:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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和{}的已构建鸡蛋,并将它们上载到我的本地pypi repo。我的替代方法是手动运行python setup.py bdist_egg,但看起来{}应该已经知道了。在


Tags: djangosrcwebapp应用程序开发人员部署buildout
1条回答
网友
1楼 · 发布于 2024-09-27 22:23:10

获取和安装鸡蛋不同于制作和托管,这就是为什么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/中。之后把它们复制到别的地方。

相关问题 更多 >

    热门问题