使用pip删除setup.py data_files中的文件

时间:2018-05-23 22:42:00

标签: python pip setup.py

我正在为自己的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.pngMANIFEST.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自动删除这些文件?

1 个答案:

答案 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)。