使用 setuptools/distutils 包含包数据
使用 setuptools 配置包安装时,合并 package_data 文件可能会出现困难。本文介绍了正确的方法,并提供了常见问题的解决方案。
不正确的方法
不正确的方法涉及定义 package_data 并将 include_package_data 设置为 True,如下所示在提供的示例中看到:
<code class="python">setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )</code>
正确方法
错误方法的问题是 package_data 仅在构建二进制包(例如 python setup.py bdist ...)时使用,但在构建源包(例如 python setup.py bdist )时不使用。 py sdist ...)。
正确的方法是使用 MANIFEST.in 指定二进制和源发行版中包含的文件。以下是 MANIFEST.in 文件的示例:
include *.txt recursive-include myapp/data *
通过使用 MANIFEST.in,您可以确保包含所有必需的包数据,无论构建的分发类型如何。
以上是如何使用 setuptools/distutils 正确包含包数据?的详细内容。更多信息请关注PHP中文网其他相关文章!