使用 setuptools 或 Distutils 在安装程序中包含包数据
使用 setuptools 时,将包数据集成到安装过程中可能会遇到障碍。虽然文档建议使用 package_data 来指定文件包含,但用户在实现此方法时面临问题。
考虑以下代码片段:
setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )
在此示例中,package_data 字典旨在包含所有.txt 文件位于 myapp/data/ 目录中。 Однако,这种机制无效。
另一种方法:MANIFEST.in
不要依赖 package_data,而是利用 MANIFEST.in 文件来指定要生成的文件包括。此方法适用于二进制和源发行版。
要创建 MANIFEST.in 文件,请添加以下行:
include data/*
在这种情况下,它确保数据中的所有文件/ 目录包含在安装过程中。
通过采用 MANIFEST.in 方法,您可以有效地管理二进制和源发行版中的包数据包含。
以上是为什么 Python setuptools 中 `package_data` 无法包含数据文件?的详细内容。更多信息请关注PHP中文网其他相关文章!