【发布时间】:2023-03-16 06:10:01
【问题描述】:
如何在没有 MANIFEST.in 文件的情况下为 sdist 包含 package_data?
我的 setup.py 看起来像这样:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'': ['foo/bar.txt']},
)
版本:
user@host> python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
>>> import setuptools
>>> setuptools.version.__version__
'3.6'
我就是无法将foo/bar.txt 包含在内。
或者this blog post 仍然是真的? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-documentation-on--package_data-/
不过,在过去的一个小时里,我了解到这些陈述介于“危险的误导”和“该死的谎言”之间。
这是因为 Python 包的主要类型是源码包,而创建源码包的规范方法是使用setup.py sdist。但是,在 package_data 中指定的数据不包含在源代码分发中——它们只包含在二进制 (setup.py bdist) 分发和安装 (setup.py install) 中。
如何在没有 MANIFEST.in 文件的情况下为 sdist 包含 package_data?
【问题讨论】:
标签: python manifest packaging setuptools setup.py