这个问题假设我要安装的 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
在解压后的 egg 中不可用eggs/
(它们包含在.tar.gz
可用的包中http://domain-to-python-package-with-data-files
)。
如何让这些数据文件包含在 egg 中?我需要更改setup.py
包的文件吗?还是与扩建有关?
我发现的事情如下:
如果我python setup.py sdist
在python-package-with-data-files
根目录中创建一个,所有数据文件都包含在创建的 .tar.gz 文件中。但是,如果我制作python setup.py bdist
它会导致构建不包含数据文件。
这让我认为问题不是特定于扩建的。但也许有一种方法可以告诉 buildout 不要制作 abdist
而是sdist
制作 egg 并将包安装到项目中。
我该怎么办?我是 的维护者python-package-with-data-files
,所以我可以setup.py
根据需要进行更改。