python - 如何使用 setuptools/distutils 包含包数据?

标签 python setuptools distutils

使用 setuptools 时,我无法让安装程序拉入任何 package_data文件。我读过的所有内容都表明以下是正确的方法。有人可以请教吗?

setup(
   name='myapp',
   packages=find_packages(),
   package_data={
      'myapp': ['data/*.txt'],
   },
   include_package_data=True,
   zip_safe=False,
   install_requires=['distribute'],
)

其中 myapp/data/ 是数据文件的位置。

最佳答案

我意识到这是一个老问题,但是对于通过 Google 找到他们的方式的人来说:package_data 是一个低调,dirty lie .它仅在构建 binary 包(python setup.py bdist ...)时使用,但在构建源包(python setup.py sdist ...)。这当然是荒谬的——人们会期望构建源代码分发会产生一组文件,这些文件可以发送给其他人以构建二进制分发。

无论如何,使用 MANIFEST.in 适用于二进制和源代码分发。

关于python - 如何使用 setuptools/distutils 包含包数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522250/

相关文章:

python - 让 py2exe 包含我的数据文件(如 include_package_data)

python - 使用 MinGW 在 Windows 上构建 lxml

python - setup.py 脚本,如何将软件包安装到自定义目录?

python - Postgres/SQLAlchemy/Alembic 将数据类型从 enum 更改为 int 并使用 map 值

python - 在 python 中,是否有某种映射来返回类型的 "False value"?

python - 解析txt的特定区域,与字符串列表进行比较,然后生成由匹配项组成的新列表

python - 在单个 `setup()` 中多次调用 `setup.py` 是否安全?

python - 调试: Crawled (404) <GET >

python - 如何使用 tox 和 pytest 将单元测试限制在支持的平台上?

python distutils 不包括 data_files