尝试使用 MANIFEST.in 文件(包含一行):
recursive-include etc *
为 systemd 安装一些文件(是的,我对那部分嗤之以鼻)
我看到文件被 sdist 添加到压缩包中,但没有什么会导致它们安装。
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 中的所有文件?
package_data
和data_files
不是一回事。 package_data
是存储和安装在与*.py
文件相同的目录中的文件(因此是"包"部分); 因此,include_package_data
仅将其在包目录中找到的数据文件(强调添加)标记为包数据。 除非代码存储在包源中的 etc/
下,否则任何文件都不会被视为包数据。 为了在Python包目录之外安装文件,您需要使用data_files
,并且没有像include_package_data
那样的快捷方式。