Python setuptools:包含在'bdist'中但不包含在'sdist'中的数据文件`
我有一个Python setuptools:包含在'bdist'中但不包含在'sdist'中的数据文件`,python,setuptools,setup.py,Python,Setuptools,Setup.py,我有一个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/__ini
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/__init__.py
foo/bar.txt
还有一个包foo
,看起来像这样:
#!/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/__init__.py
foo/bar.txt
当我运行setup.py bdist
时,bar.txt
文件(正确)包含在发行版中……但当我使用setup.py sdist
时,它不包含在发行版中
怎么回事?我是否误解了包数据的含义?或者这是
setuptools
的一个怪癖?选择这些文件有不同的来源。包_数据用于从源目录树安装。构建源程序包还需要MANIFEST.in文件。它应该包含类似于递归include*.txt
的内容,或者您需要的任何内容 啊……那么,在什么情况下我会使用package_data
呢?清单决定了源发行版中包含的内容,但package_数据是用来确定您希望与包位置(站点包)中的源Python文件一起安装的任何数据文件。MANIFEST.in中的那些文件可能不是您不希望安装在那里的文档或其他文件,而是希望安装在源发行版中。