尝试使用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中按名称枚举所有文件?
答案 0 :(得分:4)
package_data
和data_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
一样的捷径。