Python脚本的桌面启动程序在错误路径中启动程序。

7

我无法从在Linux Mint 17.1 Cinnamon上创建的.desktop启动器中启动Python脚本。

问题在于,脚本将在错误的路径中启动 - 即在主文件夹中而不是它所在的目录中。因此,它无法在其文件夹中找到其他重要的附带文件,因此无法正常工作。

为了检查这种不良行为,我创建了一个简短的脚本来检查Python脚本正在执行的文件夹:

#!/usr/bin/env python

import subprocess
import time

subprocess.call(["pwd"], shell=True)
time.sleep(7)  # to get a chance to read the output

在其自己的文件夹中执行它会得到以下输出:

/home/myusername/PythonProjects

我正在通过Nemo菜单设置桌面启动器。现在执行相同的脚本会产生以下结果:

/home/myusername

我不理解这种行为。我该如何创建一个能够运行我的python脚本的桌面启动器?

1个回答

3

页面描述了.desktop文件的格式。

您可能会注意到“Path”元素,它指定要在其中运行文件的工作目录。在您的情况下,您需要一个指定的桌面文件。

Path=/home/myusername/PythonProjects

如果Nemo不允许您设置Path元素,则可能需要手动编辑桌面文件。.desktop文件是文本文件,您可以在/home/myusername/.local/share/applications/中找到它们。

谢谢你的回答,詹姆斯。虽然将路径条目添加到所描述的文本程序的桌面文件确实更改了工作目录,但我的实际程序仍无法以这种方式运行。相反,它会因错误消息“启动应用程序时出错”而中止。我该怎么办?您需要哪些信息才能理解我的问题? - pykong
很高兴能够在某种程度上提供帮助。错误将是一个不同的问题。请参阅http://askubuntu.com/questions/436999/how-do-i-diagnose-there-was-an-error-launching-the-application,了解诊断实际错误的过程。 - James K
1
亲爱的詹姆斯,感谢您宝贵的意见。我通过在相应文件夹中放置一个仅包含启动我的Python脚本命令的shell脚本成功解决了我描述的错误。然后,我能够通过.desktop启动器启动该shell脚本,从而启动我的Python应用程序。然而,.desktop文件必须通过您建议的方式扩展以声明工作目录。我对结果非常满意,并且感觉我加深了对Linux的理解。然而,我不明白为什么启动器默认情况下不会在其自己的目录中启动其目标。 - pykong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接