setuptools:`bdist`包含数据文件但`sdist`不包含
我有一个叫做 setup.py
的文件,它长得像这样:
#!/usr/bin/env python
from setuptools import setup, find_packages
setup(
name="foo",
version="1.0",
packages=find_packages(),
include_package_data=True,
package_data={
"": ["*"],
},
)
还有一个包 foo
,它的结构是这样的:
foo/__init__.py
foo/bar.txt
当我运行 setup.py bdist
时,bar.txt
文件会(正确地)包含在发布包里……但是当我使用 setup.py sdist
时,它却没有被包含。
这是怎么回事呢?我是不是对 package_data
的意思理解错了?还是说这是 setuptools
的一个小问题?
1 个回答
12
选择这些文件有不同的来源。package_data 是用来从源代码树安装的。如果你想构建一个源代码包,还需要一个 MANIFEST.in 文件。这个文件里应该包含类似 recursive-include *.txt
的内容,或者你需要的其他文件类型。