pip install --user означает, что пользователи не могут запускать приложения из Dash или терминала

pip install --user означает, что пользователи не могут запускать приложения из Dash или терминала

Я разработчик приложения Python GUI. Я хотел бы, чтобы пользователи моего приложения могли устанавливать его с помощью pip, поскольку не все его зависимости еще вошли в Debian, и я не ожидаю, что эта ситуация изменится в ближайшее время.

Конечно, PPA был бы хорошей идеей, но в моем случае это означало бы создание с нуля пакетов Debian для пакетов Python, которые мне не принадлежат, и включали бы вещи, в которых я определенно не разбираюсь, например SWIG.

Следующая лучшая альтернатива PPA — это pip от Python. И он отлично работает! Все лучшие советы говорят об использовании опции --userпри запуске pip install. Разработчики pip говорят об этом, и у меня сложилось впечатление, что Ubuntu на самом деле использует это по умолчанию.

Однако в Ubuntu я наблюдаю две проблемы при --userиспользовании pip:

  1. Исполняемый файл приложения устанавливается в ~/.local/bin, который не находится в пути по умолчанию в Ubuntu, в отличие от Fedora и, возможно, некоторых других дистрибутивов. (Setup.py использует setuptools entry_points).
  2. По какой-то необъяснимой причине, даже если .desktopфайл находится в ~/.local/share/applications, приложение не отображается в Dash, даже после выхода из системы. К сожалению, страницы man, установленные в , ~/.local/share/man/man1также не отображаются, когда пользователь запускает man из терминала.

Я могу попросить пользователей Ubuntu создать ~/binкаталог и добавить символическую ссылку на мое приложение в ~/.local/bin, но это не решит проблему страницы руководства или отсутствия способа запустить приложение из Dash.

Как я могу посоветовать своим пользователям наилучшее решение этих проблем?

Точная команда, которую я советую пользователям использовать для установки, этоpython3 -m pip install --user foo-1.0.tar.gz

решение1

После общения с разработчиками Ubuntu в IRC я ​​теперь понимаю, что Ubuntu следует Debian и добавляет ~/bin в PATH, если папка существует. Планов сделать то же самое для ~/.local/bin нет. Поэтому конечный пользователь должен вручную изменить свой путь или добавить символическую ссылку и т. д. Как разработчик приложений, я полагаю, мне понадобится специальный скрипт установки для пользователей Ubuntu и Debian, который делает некоторые из этих вещей, что очень жаль, поскольку я уверен, что это касается каждого разработчика приложений Python, который тоже полагается на pip.

Связанный контент