这个问题假设我要安装的 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为,所以可以在.Falsesetup.pyeggs/
只有非.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根据需要进行更改。