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

时间:2019-05-11 05:28:05

标签: python linux tkinter virtualenv

我创建了一个使用virtualenv进行依赖的python脚本ExeMain.py。因此,要使用.desktop启动此脚本,我需要执行以下命令

Exec=sh -c 'source ~/PycharmProjects/ProBlog/venv/bin/activate; python ~/PycharmProjects/ProBlog/ExeMain.py;'

导致此错误的原因是“ sh:1:源:找不到”,后跟“ ImportError”

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

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

1 个答案:

答案 0 :(得分:1)

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。其中一些可能不是必需的(取决于系统设置),但是小心一点也没有什么害处。