这个问题假设我要安装的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
已在其zip_safe
文件中将False
设置为setup.py
,因此可在eggs/
中解压缩。
.py
中只有python-package-with-data-files
的解压缩鸡蛋中没有eggs/
的非.tar.gz
个文件({em> 包含在http://domain-to-python-package-with-data-files
包中可在setup.py
)获得。
如何将这些数据文件包含在鸡蛋中?我是否需要更改包的python setup.py sdist
文件?还是与建筑有关?
我发现的事情如下:
如果我在python-package-with-data-files
根目录中创建python setup.py bdist
,则所有数据文件都包含在创建的.tar.gz文件中。但是,如果我创建一个bdist
,它会导致构建而不包含数据文件。
这让我觉得问题不是针对特定的。但也许有一种方法可以告诉buildout不要创建sdist
而是python-package-with-data-files
来创建egg并将包安装到项目中。
我该怎么办?我是setup.py
的维护者,因此如有必要,我可以更改{{1}}。
答案 0 :(得分:3)
听起来你需要在setup.py文件中使用package_data keyword argument,所以distutils知道这些文件应该与你的软件包一起安装。