Python 蟒蛇3赢得';不能从macshell脚本运行
我正在尝试使用macOS 10.12上的Automator来启动Python 3脚本。当我使用命令从终端运行脚本时,该脚本工作正常: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解释器,但事实似
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
。谢谢你的帮助!