尝试使用 MANIFEST.in 文件(包含一行):
recursive-include etc *
Run Code Online (Sandbox Code Playgroud)
为 systemd 安装一些文件(是的,我对那部分不屑一顾)
我看到文件被 sdist 添加到 tarball 中,但没有任何东西会导致它们安装。
setup.py 包含以下几行
packages=find_packages(),
include_package_data=True,
Run Code Online (Sandbox Code Playgroud)
然后,如果我将此添加到 setup.py 并删除 MANIFEST.in
data_files=[
('etc/systemd/system/', ['etc/systemd/system/uwsgi.service'])
],
Run Code Online (Sandbox Code Playgroud)
他们按预期安装。我需要为 MANIFEST.in 添加一些东西而不是在 setup.py 中按名称枚举所有文件吗?
package_data
并且data_files
不是一回事。 package_data
是与您的*.py
文件存储和安装在同一目录中的文件(因此是“包”部分);include_package_data
因此只将它在包目录中找到的数据文件(强调添加)标记为包数据。除非您的代码存储etc/
在您的包源下,否则您的任何文件都不会被视为包数据。为了在你的 Python 包目录之外安装文件,你需要使用data_files
,并且没有像include_package_data
.