如何创建 .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。其中一些可能不是必需的(取决于系统设置),但小心点也无妨。
我创建了一个 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。其中一些可能不是必需的(取决于系统设置),但小心点也无妨。