4

这个问题假设我要安装的 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-packagepython-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 sdistpython-package-with-data-files根目录中创建一个,所有数据文件都包含在创建的 .tar.gz 文件中。但是,如果我制作python setup.py bdist它会导致构建不包含数据文件。

这让我认为问题不是特定于扩建的。但也许有一种方法可以告诉 buildout 不要制作 abdist而是sdist制作 egg 并将包安装到项目中。

我该怎么办?我是 的维护者python-package-with-data-files,所以我可以setup.py根据需要进行更改。

4

1 回答 1

3

听起来您需要在 setup.py 文件中使用package_data 关键字参数,因此 distutils 知道这些文件应该与您的包一起安装。

于 2010-02-18T13:07:04.027 回答