首页  >  文章  >  后端开发  >  为什么 Python setuptools 中 `package_data` 无法包含数据文件?

为什么 Python setuptools 中 `package_data` 无法包含数据文件?

Linda Hamilton
Linda Hamilton原创
2024-10-31 21:21:29710浏览

Why Does `package_data` Fail to Include Data Files in Python Setuptools?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn