【问题标题】:Run Python Script through Shell Script by Double Click双击通过 Shell 脚本运行 Python 脚本
【发布时间】:2018-08-15 21:20:15
【问题描述】:

我有一个runGUI.sh 脚本,我想通过它运行一个 Python 脚本。 Python 脚本是 GUI.py,我想通过双击 Shell 脚本或 Python 脚本本身(理想情况下我希望同时使用这两种方式),让它作为应用程序运行。

我尝试了其他人推荐的所有方法:

  • 我更改了这两个脚本的权限并使其可执行。
  • 我在 Shell 脚本中添加了适当的 #!/bin/sh#!/bin/bash,在 Python 脚本中添加了 #!/usr/bin/env python
  • 我尝试了 Python 可执行命令的 Shell 脚本中的所有组合,例如 python GUI.py./GUI.py,甚至使用 Python 脚本的完整路径。

结果是一样的。如果我双击 GUI.py 或 runGUI.sh,并且因为它们是可执行的,我会得到以下选项:

Options when double clicking

无论是“在终端中运行”还是“运行”,都不会发生任何事情。

如果我通过终端运行任一脚本,例如 ./GUI.pyrunGUI.sh,Python 文件可以正常工作并且 GUI 在两种情况下都可以打开。

有没有办法通过双击 Shell 或 Python 脚本来打开这个 GUI?

我使用的是 Ubuntu 16.04,标准 Gnome,如果有帮助,我已经安装了 Zshell,并且我使用 Tkinter 模块构建了 Python GUI。

【问题讨论】:

  • 我们需要了解您的操作系统和桌面环境
  • @glennjackman 我使用的是 Ubuntu 16.04,我还安装了 Zshell。如果这回答了桌面环境的问题,我有股票 Gnome。我使用 Tkinter 模块构建了 Python GUI。

标签: python bash shell executable


【解决方案1】:

~/.local/share/applications中创建文件名mygui.desktop

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=My GUI
Icon=
Exec=/path/to/GUI.py

然后mygui 将显示为一个应用程序,您可以单击它来启动它。

【讨论】:

  • 它作为替代品非常有效。非常感谢您的帮助。这很棒。我认为我尝试实现它的方式的问题与 python 方面的许可有关。非常感谢。
【解决方案2】:

Diego 基本上是正确的,但他们遗漏了一个会导致它失败的重要细节。我假设您使用的是 python 终端应用程序。它应该看起来更像这样:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=My GUI
Exec=python3 /path/to/GUI.py
Terminal=true

Terminal=true 使它在您单击它时实际运行。此外,将您的 python 别名(python3、py、python 等)放在它之前。最后,如果您不想要图标,只需省略它而不是输入Icon=

我知道这是一个老问题,但如果我最近遇到这个问题,我也会忘记它。

【讨论】:

  • 关于Terminal 的好点但是 GUI 似乎表明它不需要它,我会留下shebang 和执行权限来决定如何运行/path/to/GUI.py而不是预先添加解释器
  • 好评论,但事实上 OP put runGui 让我认为它是一个最初在终端中启动的脚本,就像一个 kivy 应用程序
最近更新 更多