python - 如何从 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 上的任何程序。
解决方案
(在 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 扩展,例如 ~ 或变量)
推荐阅读
- python - 如何在 Bokeh 的数据框下拉列表中选择一个数据框?
- doxygen - Doxygen 不会为间接创建对象的类方法生成引用函数调用关系
- laravel - laravel/vuejs mix 中 jsPDF 的 Webpack 错误
- sql-server - Xquery 查询以从关联的标头中检索值以获取详细信息
- ios - UIView 的背景颜色在平移时不更新
- excel - 使用条件如果值将数据从一列粘贴到另一列?
- java - 带有 Google Cloud Endpoints 注释的 Swagger Codegen
- amazon-dynamodb - 用于存储购物历史的 DynamoDB 访问模式
- reactjs - React,express,如何找到创建的用户?
- reactjs - 单击按钮时,我正在尝试显示消息警报