需要额外库的 Python 程序的启动器

需要额外库的 Python 程序的启动器

我正在尝试让启动器适用于 WikidPad (python) 程序。
我已经有一个 python 程序,所以我查看了该文件/usr/share/applications/taskcoach.desktop。执行行很简单taskcoach.py

但我无法仅输入“WikidPad.py”来启动 WikidPad,我必须编写python WikidPad.py,然后它才能从命令行正确启动。

所以我.desktop file在我写的 exec 行中制作了 for wikidpad 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

如果我想在 bash 脚本中执行 Linux 命令并且收到错误“未找到命令/文件”,我会调整 PATH 变量或写入命令的完整路径。这通常会有所帮助。

但在本例中,cd是内置的 bash 命令,我无法编写whereis cd以获得命令的完整路径。

我不知道如何让这件事继续下去。

答案1

执行者键入一个.desktop文件接受只有一个可执行文件名称(+ 参数):

执行者键必须包含命令行。命令行由一个可执行程序(可选地后跟一个或多个参数)组成。

所以,你要么:

  • 使用显式调用 shell 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)。

答案2

这在一定程度上取决于pwiki目录(或pwiki.py文件)的位置,但假设它位于/home/abc/wikidpad/您可以将以下内容添加到/home/abc/wikidpad/WikidPad.py 的进口pwiki.Enum

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

(将目录替换为您找到的目录pwiki

相关内容