首页 > 解决方案 > 如何从 Ubuntu Dash 运行 Python 脚本?

问题描述

我已经编写了 hello.py(一个基本的“hello world”程序),并且希望能够通过按 Win 键打开 Dash,然后键入脚本的名称(或类似的名称)在我的 Ubuntu 机器上快速运行它到那个)。

但是,当我在 Dash 中键入 hello.py 时,它会在编辑器中打开文件而不是执行它。我添加了一个 shebang 行#!/usr/bin/env python3并运行chmod u+x hello.py,它仍然在编辑器中打开文件。

我尝试创建一个将运行 Python 脚本的hello.sh shell 脚本,但是当我在 Dash 中键入它的名称时,shell 脚本也会在编辑器中打开。

另外,我尝试按 Alt-F2 并显示类似于 Windows 的 Win-R 的内容,但是当我输入时python3 hello.py,它不会显示终端窗口来显示任何print()输出。

有没有办法通过在 Dash 中输入名称来运行 Python 脚本?还是有另一种简单的方法来运行任意 Python 脚本?本质上,我想要的是当你按下 Win-R 时出现的 Windows 运行对话框,它可以运行系统 PATH 上的任何程序。

标签: pythonubuntu

解决方案


(在 18.04 测试)在~/.local/share/applications(仅供您的用户使用)或在/usr/share/applications(供所有用户使用)中创建此文件。
文件名必须以 .desktop 结尾。

[Desktop Entry]
Name=hello.py
Exec=/path/to/hello.py
Type=Application
Categories=GTK;GNOME;Utility;

请注意,脚本在后台运行,除非您将日志记录配置到脚本中的文件,否则错误会被吞没。

如果您希望它在控制台中运行,您可以这样做(不过,当脚本退出时控制台将关闭):

[Desktop Entry]
Name=hello.py
Exec=gnome-terminal -- /path/to/hello.py
Type=Application
Categories=GTK;GNOME;Utility;

如果您想要图标,可以使用更多功能,以限制它运行的桌面环境等 - 此处的文档:https ://developer.gnome.org/integration-guide/stable/desktop-files.html.en

假设

  • hello.py 可由当前用户执行
  • hello.py 有一个有效的 shebang
  • 路径必须是绝对路径(即不是相对路径,也不使用 shell 扩展,例如 ~ 或变量)

推荐阅读