如何创建 .desktop 文件以在 linux 上启动 python 脚本?

How to create a .desktop file to launch a python script on linux?

我创建了一个 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"

在直接 python 环境中安装所有必要模块的 .desktop 文件中没有 source 命令,它工作正常(在其他 Linux 机器中)。由于它似乎不是一个好习惯,所以我尝试使用 venv。至于我看到的错误,导入错误是因为未执行源命令。

当我启动 .desktop 文件时,它应该执行 ExeMain.py 文件。

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) && 运算符,这样在 activate 完成之前它不会尝试 运行 python 代码, 2) 将 ~ 波浪号替换为完整路径,以防桌面环境无法正确扩展它,以及 3) 输入 venv python 的完整路径,这样它就不会默认为系统 python。其中一些可能不是必需的(取决于系统设置),但小心点也无妨。