![需要额外库的 Python 程序的启动器](https://linux22.com/image/32653/%E9%9C%80%E8%A6%81%E9%A2%9D%E5%A4%96%E5%BA%93%E7%9A%84%20Python%20%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%90%AF%E5%8A%A8%E5%99%A8.png)
我正在尝试让启动器适用于 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
)