我正在努力将一个小型 Python 项目打包为 zip 或 egg 文件,以便进行分发。我遇到了 2 种方法来包含项目的配置文件,这两种方法似乎都产生相同的结果。
方法一:
将此代码包含在 setup.py 中:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['config\propFiles1.ini',
'config\propFiles2.ini',
'config\propFiles3.ini'])]
)
方法二:
将此代码包含在 setup.py 中:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage']
)
然后,创建一个包含以下行的 MANIFEST.in 文件:
include config\*
这些方法有什么区别吗?哪一个是首选?我倾向于第一个,因为那样根本不需要 MANIFEST.in 文件。但是,在第一种方法中,您必须单独指定每个文件,而在第二种方法中,您可以只包含整个文件夹。还有什么我应该考虑的吗?标准做法是什么?
最佳答案
MANIFEST.in 控制当您调用 python setup.py sdist
时将哪些文件放入分发 zip 文件中。它不控制安装的内容。 data_files
(或更好的package_data
)控制安装的文件(我认为还确保文件包含在 zip 文件中)。将 MANIFEST.in 用于您不会安装的文件,例如文档,将 package_data
用于您使用的不是 Python 代码的文件(例如图像或模板)。
关于python - 将文件包含在 Python 发行版中的 2 种技术 : which is better?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968701/