如何从 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)?的主要内容,如果未能解决你的问题,请参考以下文章

mac studio可以搭配windows嘛

mac os spotlight 不能查看天气

如何使用终端命令注销Mac?使用终端注销Mac的方法!

在不受支持的 Mac 上,Spotlight 搜索在 MacOS Big Sur 中不起作用

mac电脑聚焦搜索Spotlight使用方法教程

mac电脑聚焦搜索Spotlight使用方法教程