【问题标题】:Including package data with Distribute使用 Distribute 包含包数据
【发布时间】:2010-12-16 14:28:30
【问题描述】:
我正在尝试将 Distribute 用于我的项目的 setup.py。我希望它包含包文件夹中的所有文件,它们是文本和图像文件,但当然不是 .pyc 文件。我读到文件应该由 CVS 和 SVN 跟踪,或者应该有一个MAINFEST.in。
所以:
我既不使用 CVS 也不使用 SVN,我使用 git。我知道可以为 git 写一个插件,也许有人有,但是我不会使用一些我不知道它是否会被维护和支持的插件。此外,git 跟踪的不仅仅是源文件夹,repo 还包括其他不应打包在分发中的文件。
我认为 Distribute 的好处之一是不必处理 MANIFEST.in 文件。我真的必须吗?如果是这样,我在哪里可以看到指南?我从来没有写过MANIFEST.in。
有没有更好的解决方案?
【问题讨论】:
标签:
python
distribution
setuptools
distribute
【解决方案1】:
我已经在 Distutils 中改变了这种行为(在 Python 主干 (2.7/3.2) 中)
现在 package_data 中提到的所有文件都将默认包含在内,而无需
编写一个 MANIFEST.in 文件,而无需使用基于 DVCS 的神奇行为。
在此之前,我建议使用明确的 MANIFEST.in 并坚持使用普通的 Distutils 选项,这样您就不会依赖任何 VCS,也不会意外添加文件,这些文件位于您的
存储库,但您不希望看到添加到您的版本中。
Distribute 0.7.x 可能会坚持 Distutils 即将推出的默认行为。
在 Distutils 文档中查找 MANIFEST.in 模板语言,很简单。
塔雷克
【解决方案2】:
我不知道distribute 是否有更好的文档,所以您可能需要参考setuptools 的文档,distribute 是从该文档中分叉出来的。特别是,请参阅包含数据文件的部分。