【问题标题】:Why is setuptools not installing my "data files" named in MANIFEST.in?为什么 setuptools 没有安装我在 MANIFEST.in 中命名的“数据文件”?
【发布时间】:2017-10-18 19:19:03
【问题描述】:

尝试使用 MANIFEST.in 文件(包含一行):

recursive-include etc *

为 systemd 安装一些文件(是的,我对那部分持保留态度)

我看到文件被 sdist 添加到 tarball 中,但没有任何东西会导致它们安装。

setup.py 包含以下几行

  packages=find_packages(),
  include_package_data=True,

然后,如果我将其添加到 setup.py 并删除 MANIFEST.in

  data_files=[
      ('etc/systemd/system/', ['etc/systemd/system/uwsgi.service'])
  ],

它们按预期安装。我是否需要添加一些东西才能让 MANIFEST.in 工作,而不是在 setup.py 中按名称枚举所有文件?

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

    package_datadata_files 不是一回事。 package_data 是与*.py 文件存储并安装在同一目录中的文件(因此是“包”部分); include_package_data 因此仅将 data files it finds inside your package directories(添加了重点)标记为包数据。除非您的代码存储在包源中的etc/ 下,否则您的任何文件都不会被视为包数据。为了在您的 Python 包目录you need to use data_files 之外安装文件,并且没有像include_package_data 那样的快捷方式。

    【讨论】:

    • 我查了一下,确实是这样。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2018-05-24
    • 2012-03-12
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多