Python:为什么setuptools没有';不包括我的包裹数据?

Python:为什么setuptools没有';不包括我的包裹数据?,python,setuptools,distutils,Python,Setuptools,Distutils,今天我创建了一个setup.py文件,发现一个工作脚本和两个不工作的场景。 在两种非工作场景中,package\u dataafter在构建中丢失。我使用python setup.py sdist创建了构建 为什么场景2和场景3不包括我的包数据? 场景1起作用: 场景2不起作用: 场景3也不起作用: 在我的例子中,问题不在setup.py中,而是缺少MANIFEST.In,它还需要声明包数据。不能在包数据声明中直接使用glob语法 但在将其传递给设置函数之前,可以声明包含此数据的变量: from

今天我创建了一个setup.py文件,发现一个工作脚本和两个不工作的场景。 在两种非工作场景中,
package\u data
after在构建中丢失。我使用
python setup.py sdist
创建了构建

为什么场景2和场景3不包括我的包数据? 场景1起作用: 场景2不起作用: 场景3也不起作用:
在我的例子中,问题不在setup.py中,而是缺少MANIFEST.In,它还需要声明包数据。

不能在包数据声明中直接使用glob语法

但在将其传递给设置函数之前,可以声明包含此数据的变量:

from glob import glob

data = glob('data/*.dat')
txt_files = glob('*.txt')

...

setup(...
package_data = {
    '': txt_files,
    'mypkg': data,
}
...

这不是真的,如果包数据声明正确,它将自动进入清单。@marscher,
包数据
在源发行版中不起作用。。你需要舱单。。检查tsg是否正确是的,在setup.py package_data和MANIFEST.inHuh中都需要它。在我处理清单的所有工作之后,这似乎实际上是正确的答案(至少在setuptools中是这样)。这是不正确的,setuptools默认使用glob:package_data={'':['*.dat']}
from setuptools import setup #, find_packages
from setuptools.command import sdist
setup (
    name = 'mypkg',
    packages = ['mypkg'],
    package_dir = {'mypkg': 'src/mypkg'},
    include_package_data = True,
    package_data = {
        '': ['*.txt'],
        'mypkg': ['data/*.dat'],
    }
)
from setuptools import find_packages
from setuptools.command import sdist
setup (
    name = 'mypkg',
    packages = find_packages('src'),
    package_dir = {'mypkg': 'src/mypkg'},
    include_package_data = True,
    package_data = {
        '': ['*.txt'],
        'mypkg': ['data/*.dat'],
    }
)
from glob import glob

data = glob('data/*.dat')
txt_files = glob('*.txt')

...

setup(...
package_data = {
    '': txt_files,
    'mypkg': data,
}
...