首页 > 后端开发 > Python教程 > 为什么'package_data”适用于二进制发行版,但不适用于'setuptools/distutils”中的源发行版?

为什么'package_data”适用于二进制发行版,但不适用于'setuptools/distutils”中的源发行版?

Mary-Kate Olsen
发布: 2024-11-03 05:13:31
原创
858 人浏览过

Why Does `package_data` Work for Binary Distributions but Not Source Distributions in `setuptools/distutils`?

将数据包含在 setuptools/distutils 中

打包 Python 应用程序时,通常需要在发行版中包含其他数据文件。在 setuptools 和 distutils 中,package_data 选项就是用于此目的。然而,一些用户在尝试使用这种方法包含包数据时遇到问题。

根据文档,setup() 函数应配置如下以包含包数据:

setup(
   name='myapp',
   packages=find_packages(),
   package_data={
      'myapp': ['data/*.txt'],
   },
   include_package_data=True,
   zip_safe=False,
   install_requires=['distribute'],
)
登录后复制

此配置指定打包应用程序时应将扩展名为 .txt 的文件包含在 myapp/data 目录中。然而,一些用户可能会发现这种方法不起作用。

提供的解决方案表明问题出在 package_data 的行为上。请注意,package_data 仅在构建二进制包时有效(使用 setup.py bdist ...)。但是,在构建源包时(使用 setup.py sdist ...)它不起作用。

建议不要依赖 package_data,而是使用 MANIFEST.in 文件。 MANIFEST.in 文件提供了应包含在二进制和源发行版中的文件列表。这确保用户可以创建两种类型的发行版并包含必要的数据。

以上是为什么'package_data”适用于二进制发行版,但不适用于'setuptools/distutils”中的源发行版?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板