Как создать файл .desktop для запуска скрипта Python на Linux? - PullRequest
0 голосов
/ 11 мая 2019

Я создал скрипт на Python ExeMain.py, который использует virtualenv для зависимости.Таким образом, чтобы запустить этот скрипт с помощью .desktop, я сделал эту команду

Exec=sh -c 'source ~/PycharmProjects/ProBlog/venv/bin/activate; python ~/PycharmProjects/ProBlog/ExeMain.py;'

, которая вызвала ошибку "sh: 1: source: not found" и затем "ImportError"

БезИсходная команда в файле .desktop со всеми необходимыми модулями, установленными в среде прямого Python, работает нормально (на другом компьютере с Linux).Поскольку это кажется плохой практикой, я попытался использовать venv.И из ошибок, которые я мог видеть, чем ошибка импорта, потому что исходная команда не выполнена.

Когда я запускаю файл .desktop, он должен выполнить файл ExeMain.py.

1 Ответ

1 голос
/ 11 мая 2019

Стандартные версии sh не имеют команды source.Возможно, вместо этого используйте / bin / bash?Таким образом, это должно быть записано примерно так:

Exec=/bin/bash -c 'source /home/username/PycharmProjects/ProBlog/venv/bin/activate && /home/username/PycharmProjects/ProBlog/venv/bin/python /home/username/PycharmProjects/ProBlog/ExeMain.py'

Я также предлагаю три других изменения: 1) оператор &&, чтобы он не пытался запускать код Python до activate завершено, 2) замените тильду ~ на полный путь, если среда рабочего стола не расширит его должным образом, и 3) введите полный путь к питону venv, чтобы он не по умолчанию соответствовалсистемный питон.Некоторые из них могут быть необязательными (в зависимости от настроек системы), но быть осторожным не помешает.

...