如何从 Mac 的 Spotlight 运行 Python 脚本(而不必打开终端或 Pycharm)?
Posted
技术标签:
【中文标题】如何从 Mac 的 Spotlight 运行 Python 脚本(而不必打开终端或 Pycharm)?【英文标题】:How Do I Run a Python Script from Mac's Spotlight (Instead of Having to Open Terminal or Pycharm)? 【发布时间】:2020-08-10 23:28:30 【问题描述】:我使用的是 MacBook Pro 16"(使用 MacOS Catalina)。我想通过 Spotlight 搜索直接运行 Python 脚本。我不想打开任何 IDE 或终端。我已经看到说明我要:
编写并保存我的 Python 代码,例如:print("Hello World"),在主文件夹 Users/Gory 中保存为 hello.py
使用 TextEdit 创建一个文本文件并将其保存为 .command 文件扩展名(例如:samplescript.command)。该文件应包含以下内容
#!/usr/bin/env bash
python3 /Users/Gory/hello.py
通过在终端中运行,使上面创建的 shell 脚本(samplescript.command)可执行:
chmod u+x samplescript.command
完成上述步骤后,我通过 Spotlight 搜索 samplescript.command 并按下回车键。我希望在终端窗口上看到“Hello World”。相反,我收到以下消息:
MacBook-Pro:~ Gory$ /Users/Gory/samplescript.command ; exit;
/Users/Gory/samplescript.command: line 1: rtf1ansiansicpg1252cocoartf2511: command not found
/Users/Gory/samplescript.command: line 2: syntax error near unexpected token `'
/Users/Gory/samplescript.command: line 2: `\cocoatextscaling0\cocoaplatform0\fonttbl\f0\fswiss\fcharset0 Helvetica;'
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
怎么了?
【问题讨论】:
供参考:How can I launch a Python script from Spotlight on macOS?Super User。 【参考方案1】:您的问题
你的问题是你的第二步造成的:
使用 TextEdit 创建一个文本文件并将其保存为 .command 文件扩展名(例如:samplescript.command)。该文件应包含以下内容
默认情况下,TextEdit 使用富文本格式。
后果:您的 samplescript.command
文件不包含您所期望的内容
#!/usr/bin/env bash
python3 /Users/Gory/hello.py
其实
\rtf1\ansi\ansicpg1252\cocoartf2513
\cocoatextscaling0\cocoaplatform0\fonttbl\f0\fswiss\fcharset0 Helvetica;
\colortbl;\red255\green255\blue255;
\*\expandedcolortbl;;
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
\f0\fs24 \cf0 #!/usr/bin/env bash\
python3 /Users/Gory/hello.py
这样的内容不是一个有效的命令,然后执行时会导致观察到的错误:
line 1: rtf1ansiansicpg1252cocoartf2513: command not found
line 2: syntax error near unexpected token `'
line 2: `\cocoatextscaling0\cocoaplatform0\fonttbl\f0\fswiss\fcharset0 Helvetica;'
如何解决?
如果您想使用 TextEdit,请在输入任何内容之前将格式从富文本更改为纯文本。
-
创建一个新文档
格式菜单 ➜ 制作纯文本
插入您的内容,保存
更好的修复:
不要使用 TextEdit 或任何其他类型的文本处理器应用程序编写代码(脚本),以便从一开始就避免此类问题。
无论如何,无论您使用何种编辑器,都要仔细检查(脚本)文件内容是否确实是您期望的内容。
【讨论】:
【参考方案2】:我是一名学习者,遇到了类似的问题。 我在 shebang 行中使用了一个额外的空间,我运行 chmod 到完整的文件路径。
"#! /usr/bin/env bash"
【讨论】:
欢迎来到 Stack Overflow。在回答之前,请确保您了解问题的问题或错误(最好是您可以先自己重现它)。说明您有类似的问题并不能解释太多,并且给定的解决方案也不能解决 OP 的错误。您可以看到my answer 了解如何触发 OP 问题中的错误以及如何解决它。当您从这里开始时,请使用tour 并阅读How do I write a good answer?。以上是关于如何从 Mac 的 Spotlight 运行 Python 脚本(而不必打开终端或 Pycharm)?的主要内容,如果未能解决你的问题,请参考以下文章