我正在尝试在macOS 10.12上使用Automator来启动Python 3脚本。当我使用以下命令从终端运行脚本时,脚本运行正常:python3 my_script.py
。
Automator有一个“运行Shell脚本”功能,它使用/ bin / bash shell。 shell将使用命令python my_script.py
运行脚本,但这似乎只适用于用Python 2.7编写的脚本。
我的脚本以#!/usr/bin/env python3
开头,我认为它会将shell指向正确的python解释器,但似乎并非如此。
作为一种解决方法,如果我插入python解释器的完整路径,我可以运行脚本:/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
,但我认为这是次优的,因为如果/当我更新到Python时命令可能不起作用3.6。
有没有更好的方法来指导/ bin / bash shell运行Python3脚本?
答案 0 :(得分:2)
由于你有shebang行,你可以./my_script.py
,它应该用Python 3运行。
答案 1 :(得分:0)
您可以使用brew install python3
通过Homebrew安装Python 3,并使用#!/usr/local/bin/python3
作为工具。
这不是完美的解决方案,但仍然比使用解释器的完整路径更好。
答案 2 :(得分:0)
您可以创建~./bash_profile
文件,然后将路径导出到python 3 bin文件夹,看起来像
export PATH=“path-to-python3-bin-folder:$PATH”
每次输入终端时,键入source ~./bash_profile
,现在您可以在终端中调用python3作为函数来调用代码。
另一方面,我建议您下载Anaconda,因为您可以使用所需的python版本轻松创建虚拟环境。
答案 3 :(得分:0)
如果python
引用Python 2,那么这就是您应该期望的。在命令行中使用python3
,或根据脚本本身来定义其解释器。
更详细地,请确保文件的第一行包含有效的shebang(您似乎对此进行了排序);但如果您明确说出python script.py
,则shebang不会影响将使用的解释器。而是将文件设置为可执行文件,然后使用./script.py
运行它。
实际上,您也可以在命令行上使用env
。 env python3 script.py
也应在提示符下工作。