【问题标题】:setuptools: data files included with `bdist` but not with `sdist`setuptools:包含在“bdist”中但不包含在“sdist”中的数据文件
【发布时间】:2011-10-06 13:09:07
【问题描述】:

我有一个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 的怪癖?

【问题讨论】:

    标签: python setuptools setup.py


    【解决方案1】:

    选择这些文件有不同的来源。 package_data 用于从源代码树安装。构建源包还需要一个 MANIFEST.in 文件。它应该包含recursive-include *.txt 之类的内容,或者您​​需要的任何内容。

    【讨论】:

    • 啊……那么,在什么情况下我会使用package_data
    • manifest 确定源分发中包含的内容,但 package_data 用于确定要安装的任何数据文件以及包位置 (site-packages) 中的源 Python 文件. MANIFEST.in 中的那些文件可能不是文档或您不想安装在其中的其他文件,但在源代码分发中确实需要。
    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多