Python 蟒蛇3赢得';不能从macshell脚本运行

Python 蟒蛇3赢得';不能从macshell脚本运行,python,macos,shell,automator,Python,Macos,Shell,Automator,我正在尝试使用macOS 10.12上的Automator来启动Python 3脚本。当我使用命令从终端运行脚本时,该脚本工作正常:python3myu-script.py Automator有一个使用/bin/bash Shell的“运行Shell脚本”函数。shell将使用以下命令运行脚本:pythonmy_script.py,但这似乎只适用于用python2.7编写的脚本 我的脚本以#开头/usr/bin/env python3,我认为它会将shell指向正确的python解释器,但事实似

我正在尝试使用macOS 10.12上的Automator来启动Python 3脚本。当我使用命令从终端运行脚本时,该脚本工作正常:
python3myu-script.py

Automator有一个使用/bin/bash Shell的“运行Shell脚本”函数。shell将使用以下命令运行脚本:
pythonmy_script.py
,但这似乎只适用于用python2.7编写的脚本

我的脚本以
#开头/usr/bin/env python3
,我认为它会将shell指向正确的python解释器,但事实似乎并非如此

作为一种解决方法,如果插入python解释器的完整路径,我可以运行脚本:
/Library/Frameworks/python.framework/Versions/3.5/bin/python3
,但我认为这是次优的,因为如果/当我更新到python 3.6时,这些命令可能不起作用


有没有更好的方法来引导/bin/bash shell运行Python3脚本

既然您有shebang行,您可以执行
/my_script.py
,它应该与Python 3一起运行。

您可以通过自制
brew安装Python 3
并使用
\/usr/local/bin/python3
作为您的shebang


这不是一个完美的解决方案,但仍然比使用解释器的完整路径要好。

您可以创建
~./bash\u profile
文件并将路径导出到python 3 bin文件夹,它看起来像

export PATH=“path-to-python3-bin-folder:$PATH”
每次进入终端时,键入
source~./bash\u profile
,现在您可以在终端中调用python3作为函数来调用代码


另一方面,我建议您下载Anaconda,因为您可以使用您喜欢的python版本轻松创建虚拟环境。

如果
python
指的是python 2,那么这就是您应该期望的。在命令行中使用
python3
,或者根据脚本本身定义解释器

更详细地说,确保文件的第一行包含有效的shebang(您似乎已经对其进行了排序);但是,如果显式地说
pythonscript.py
,则shebang不会影响将使用什么解释器。相反,使文件可执行,并使用
/script.py
运行它


实际上,您也可以在命令行上使用
env
<代码>env python3 script.py也应该可以在提示符下工作。

您是否已使脚本可执行?如果您运行
chmod+xmyu-script.py
您的脚本将是可执行的,那么您可以只运行
/myu-script.py
,而不需要
python3 myu-script.py
Man。我是Mac上的傻瓜,但我建议您首先使用Python 3.4。它是Python 3最稳定的版本。否则,您的“变通方法”就是获得它的正确方法(路径问题)。权限是:
-rwxr-xr-x
。如果您运行
哪个python3
,它应该告诉您shebang的正确路径。为了说明为什么会这样做:当您使用
python my_script.py
运行脚本时,
python
命令会显式覆盖shebang。在不指定要使用的解释器的情况下运行脚本(例如,仅使用
/my_script.py
),操作系统会查看shebang以确定要使用的解释器。感谢您的建议。我没有使用
python
命令运行,现在得到了错误:
env:python3:没有这样的文件或目录
,但这对我来说没有意义,因为在终端中,当我运行
哪个python3
时,我得到了
/Library/Frameworks/python.framework/Versions/3.5/bin/python3
。谢谢你的帮助!