在buildout环境中安装python egg,包括数据文件

这个问题假设我要安装的python包是一个包含模板和媒体文件的django应用程序.但这个问题对任何不仅包含.py文件的python包都有效.

我正在使用buildout创建一个可重建的环境,我正在开发一个django项目.我的buildout.cfg看起来像这样:

[buildout]
parts = python
eggs =
  normal-python-package
  python-package-with-data-files
find-files = 
  http://domain-to-python-package-with-data-files

[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}

(和一些django相关的东西). python-package-with-data-files可通过页面http:// domain-to-python-package-with-data-files上的链接获得.

egg normal-python-package和python-package-with-data-files成功安装在eggs /目录中.因为python-package-with-data-files在其setup.py文件中将zip_safe设置为False,所以可以在egg /中解压缩.

只有python-package-with-data-files的非.py文件在egg /中的解压缩蛋中不可用(它们包含在http:// domain-to-python-package中的.tar.gz包中-with数据文件).

如何将这些数据文件包含在鸡蛋中?我是否需要更改软件包的setup.py文件?或者它是否与建筑相关?

我发现的事情如下:

如果我在python-package-with-data-files根目录中创建python setup.py sdist,则所有数据文件都包含在创建的.tar.gz文件中.但是如果我创建一个python setup.py bdist,它会导致构建而不包含数据文件.

这让我觉得问题不是特定于扩建.但也许有一种方法可以告诉buildout不要创建一个bdist而是一个sdist来创建egg并将软件包安装到项目中.

我该怎么办?我是python-package-with-data-files的维护者,所以我可以在必要时更改setup.py.

解决方法:

听起来你需要在setup.py文件中使用package_data keyword argument,所以distutils知道这些文件应该与你的软件包一起安装.

上一篇:八八、egg.js入门简介


下一篇:spark