我正在为自己的Linux应用程序编写setup.py
。我在myapp.desktop
中添加了一个桌面条目文件/usr/share/applications
。这是我的setup.py
:
setup(...,
data_files=[
('/usr/share/applications', ['myapp.desktop']),
('/usr/share/pixmaps', ['myapp.png'])]
)
我还在myapp.desktop
中添加了myapp.png
和MANIFEST.in
:
include myapp.png
include myapp.desktop
因此,我可以使用python setup.py install
安装该应用,并在正确的路径中安装data_files
。
问题是,当我使用pip uninstall myapp
卸载应用时,请点击删除data_files
中的文件,例如/usr/share/applications/myapp.desktop
和/usr/share/pixmaps/myapp.png
。我需要自己删除它们。
如何使用pip uninstall
自动删除这些文件?
答案 0 :(得分:1)
你不能。 python setup.py install
导致您的软件包使用setuptools安装,而不是pip,因此pip对软件包的了解不足以完全卸载它。由于没有python setup.py uninstall
命令,因此即使setuptools也无法卸载您的软件包!如果您希望pip能够正确卸载软件包,则需要使用pip(pip install .
)进行安装,但这样做的缺点是data_files
文件将放在已安装的软件包旁边而不是在系统根目录(例如,myapp.desktop
将最终在某个地方,如~/.local/lib/python2.7/site-packages/usr/share/applications/myapp.desktop
)。