Launcher для программы Python, которая требует дополнительных библиотек

Я пытаюсь запустить Launcher для программы WikidPad (python).
У меня уже есть программа python, поэтому я просмотрел файл /usr/share/applications/taskcoach.desktop . Строка exec была просто taskcoach.py .

Но я не могу запустить WikidPad, просто набрав «WikidPad.py», мне нужно написать python WikidPad.py , затем он начнет корректно из командной строки.

Поэтому я создал .desktop file для wikidpad, в строке exec написал python /home/abc/wikidpad/WikidPad.py .

Но кажется, что вы должны быть в том же каталоге, чтобы получить правильные результаты, иначе есть ошибка. No module named pwiki.Enum .

Поэтому я изменил строку exec на cd /home/abc/wikidpad;python WikidPad.py .

Но это также не сработало, сообщение об ошибке было cd could not be executed, file or directory not found .

Если я хочу выполнить команду Linux в сценарии bash, и я получаю сообщение об ошибке «команда / файл не найден», я настраиваю переменную PATH или записываю полный путь к команде. Это обычно помогает.

Но в этом случае cd является встроенной командой bash, и я не могу написать whereis cd , чтобы получить полный путь к команде.

Я не собираюсь это делать.

2 Solutions collect form web for “Launcher для программы Python, которая требует дополнительных библиотек”

Ключ Exec в файле .desktop принимает только одно исполняемое имя (+ аргументы):

Ключ Exec должен содержать командную строку. Командная строка состоит из исполняемой программы, за которой следует один или несколько аргументов.

Итак, вы либо:

  • вызывать оболочку с явным sh -c "command_string" (где command_string = ваши фактические команды):

     Exec=sh -c "cd /home/abc/wikidpad; python WikidPad.py" 

или

  • поместите свои команды в скрипт (где-то в вашем $PATH ), сделайте его исполняемым и запустите файл .desktop скриптом:

     Exec=my_script 

    (или Exec=/full/path/to/my_script если скрипт не находится в вашем $PATH ).

Это зависит от того, где pwiki каталог pwiki (или файл pwiki.py ), но при условии, что он находится в /home/abc/wikidpad/ вы можете добавить следующее в /home/abc/wikidpad/WikidPad.py перед тем, как импорт pwiki.Enum :

 import sys sys.path.insert(0, '/home/abc/wikidpad') 

(Замена каталога в каталоге, где вы нашли pwiki )

  • Сценарий для удаления файлов, не соответствующих определенным именам файлов
  • Crontab run-parts
  • Ошибка ImportError: отсутствие модуля с именем _struct при управлении пакетами
  • Как вы указываете количество строк каждого файла в каталоге в человекообразном формате.
  • настроить python3-tk для установленного вручную python 3.4 debian wheezy
  • Терминатор, установленный через Homebrew «Несовместимая версия библиотеки»,
  • Пакет python3-pyds9 отсутствует в Jessie
  • Проверка среды рабочего стола из командной строки
  • Имя процесса «замаскировано» / usr / bin / python и / bin / su
  • Как перезапустить скрипт Python автоматически, если он убит или умирает
  • Как вы устанавливаете Django, когда есть проблема с scl?
  • Linux и Unix - лучшая ОС в мире.