Удаление файлов в файле setup.py data_files с помощью pip - PullRequest
0 голосов
/ 24 мая 2018

Я пишу setup.py для моего собственного приложения Linux.Я добавил входной файл рабочего стола 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, pip не удаляет файлы в data_files, например, /usr/share/applications/myapp.desktop и/usr/share/pixmaps/myapp.png.Мне нужно удалить их самостоятельно.

Как я могу удалить эти файлы автоматически, используя pip uninstall?

1 Ответ

0 голосов
/ 24 мая 2018

Вы не можете.python setup.py install приводит к тому, что ваш пакет устанавливается с помощью setuptools, а не pip, и в результате pip недостаточно знает о пакете, чтобы полностью удалить его.Даже setuptools не может удалить ваш пакет, так как нет команды python setup.py uninstall!Если вы хотите, чтобы pip мог правильно удалить ваш пакет, вам необходимо установить его с помощью pip (pip install .), но с тем недостатком, что файлы data_files будут размещаться рядом с установленным пакетом, а не в корневом каталоге системы (Например, myapp.desktop будет где-то, как ~/.local/lib/python2.7/site-packages/usr/share/applications/myapp.desktop).

...