在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
上的链接获取。
包normal-python-package
和python-package-with-data-files
都成功安装在eggs/
目录下。因为python-package-with-data-files
在它的setup.py
文件中将zip_safe
设置为False
,所以它在eggs/
中是以未压缩的形式可用的。
但是python-package-with-data-files
中的非.py
文件在eggs/
中的未压缩包里是不可用的(它们确实包含在可在http://domain-to-python-package-with-data-files
下载的.tar.gz
包中)。
我该如何将这些数据文件包含在egg中?我需要修改这个包的setup.py
文件吗?还是说这与buildout有关?
我发现的情况如下:
如果我在python-package-with-data-files
的根目录下运行python setup.py sdist
,所有数据文件都会被包含在创建的.tar.gz文件中。但如果我运行python setup.py bdist
,则生成的包不包含数据文件。
这让我觉得问题并不是特定于buildout的。但也许有办法告诉buildout不要生成bdist
,而是生成sdist
来创建egg并将包安装到项目中。
我该怎么办?我是python-package-with-data-files
的维护者,所以如果需要,我可以修改setup.py
。