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 )

  • Выполнение команды на всех серверах с использованием Fabric
  • Как использовать cron + python для регулярной регулировки яркости экрана?
  • Есть ли эквивалент вызова встроенной функции функции python («тем»), но в bash?
  • Лучшая практика обновления собственного приложения
  • Вызывать скрипт python через команду make
  • CUPS - проверить успешность печати (либо python, либо в системе)
  • Как проверить и запустить скрипт, если он не запущен?
  • Как вычислить процент столбца файла?
  • Разрешение запрещено в скриптовой тюрьме chroot
  • Как выполнить команду «jobs» unix в среде python
  • Выполняется скрипт Python во время блокировки экрана
  • Interesting Posts

    Как применить этот патч revert commit от git?

    Как распечатать переменную с выравниванием по центру?

    Система файлов становится чистой только для чтения; как отладить это?

    Как загрузить все сообщения электронной почты с сервера POP3 в один текстовый файл с mailx?

    Почему я не могу передать файл через wget (FTP) с помощью функции exec () в PHP?

    Как я могу получить справочное сообщение для zsh builtin's?

    Как получить wget для использования имени прямого URL-файла в качестве имени выходного файла для сокращенного URL-адреса

    Установка отсутствующей прошивки в debian

    Многократное развертывание образа Windows с помощью Linux PXE-сервера?

    Тестирование успеха алгоритма перегрузки

    Как подсчитать количество строк вывода?

    Debian8 (jessie) не обнаруживает bluetooth

    Компиляция винного приложения, как я могу ссылаться на windows.h

    Иногда синхронизация застревает с dd

    Blueman: объект RecentConns «NoneType» не повторяется

    Linux и Unix - лучшая ОС в мире.