Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本的桌面启动器以错误路径启动程序_Python_Linux_Filepath_Launcher_Linux Mint - Fatal编程技术网

Python脚本的桌面启动器以错误路径启动程序

Python脚本的桌面启动器以错误路径启动程序,python,linux,filepath,launcher,linux-mint,Python,Linux,Filepath,Launcher,Linux Mint,我无法从Linux Mint 17.1肉桂上创建的.desktop启动器启动python脚本 问题是脚本将以错误的路径启动-即主文件夹,而不是它所在的目录。因此,它无法在文件夹中找到其他重要文件,因此无法工作 为了检查该错误行为,我创建了一个短脚本来检查python脚本正在执行的文件夹: #!/usr/bin/env python import subprocess import time subprocess.call(["pwd"], shell=True) time.sleep(7)

我无法从Linux Mint 17.1肉桂上创建的.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脚本创建工作桌面启动器?

描述了
.desktop
文件的格式

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

Path=/home/myusername/PythonProjects

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

中找到它们,谢谢您的回答,James。虽然将路径条目添加到所述文本程序的桌面文件中确实改变了工作目录,但我的实际程序仍然无法以这种方式运行。相反,它会中止启动,并显示错误消息:“启动应用程序时出错。”如何从这里继续?你需要什么样的信息来理解我的问题?很高兴能有所帮助。错误将是另一个问题。有关诊断错误的步骤,请参阅,James,谢谢您的宝贵意见。我成功地解决了我描述的错误,将一个shell脚本与启动python脚本的唯一命令放在相应的文件夹中。然后,我可以通过.desktop启动器启动shell脚本和python应用程序。然而,必须按照您建议的方式扩展.desktop-fie,说明工作目录。我对结果非常满意,并且觉得我加深了对Linux的理解。然而,我不明白为什么一个启动器在默认情况下不会在它自己的目录中启动它的目标。