【问题标题】:Desktop Launcher for Python Script Starts Program in Wrong PathPython 脚本的桌面启动器以错误的路径启动程序
【发布时间】:2015-08-12 19:38:45
【问题描述】:

我无法从在 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 脚本创建一个可以工作的桌面启动器?

【问题讨论】:

    标签: python linux filepath launcher linux-mint


    【解决方案1】:

    page 描述了.desktop 文件的格式。

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

    Path=/home/myusername/PythonProjects
    

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

    【讨论】:

    • 感谢您的回答,詹姆斯。虽然将路径条目添加到所描述的文本程序的桌面文件确实改变了工作目录,但我的实际程序仍然无法以这种方式运行。相反,它的启动被中止并显示错误消息:“启动应用程序时出错。”如何从这里开始?了解我的问题需要哪些信息?
    • 很高兴能提供一些帮助。该错误将是一个不同的问题。请参阅askubuntu.com/questions/436999/… 了解诊断实际错误的过程
    • 亲爱的 James,感谢您的宝贵意见。我成功地解决了我描述的错误,方法是在相应的文件夹中放置一个带有启动我的 python 脚本的唯一命令的 shell 脚本。然后我能够通过 .desktop 启动器启动该 shell 脚本,从而启动我的 python 应用程序。但是,必须通过按照您建议的方式声明工作目录来扩展 .desktop 文件。我对结果很满意,感觉我对Linux的理解加深了。然而,我不明白为什么启动器默认不会在它自己的目录中启动它的目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2012-12-30
    • 2012-06-18
    相关资源
    最近更新 更多