Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python setuptools:包含在'bdist'中但不包含在'sdist'中的数据文件`_Python_Setuptools_Setup.py - Fatal编程技术网

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中的那些文件可能不是您不希望安装在那里的文档或其他文件,而是希望安装在源发行版中。