OSX Automator 无法使用来自 shell 的模块运行 Python 脚本

bla*_*lah 1 python macos shell automator twython

我正在尝试运行一个 Python 脚本,该脚本使用Run Shell ScriptOSX Automator 中的一些 3rd 方模块(numpy、pandas、Twython)。我写了一个成功运行的 hello_world.py 脚本,所以我确定问题是由于 3rd 方模块造成的。

在终端中,我可以成功执行:python Desktop/my_folder/myscript.py,但是当我尝试运行下面的 shell 脚本时,shell 脚本失败。我从 anaconda 发行版运行 Python 2.7.7。

#!/Users/myName/anaconda/bin/python2.7

cd ~/Desktop/my_folder/
python script.py
Run Code Online (Sandbox Code Playgroud)

如何编写适用于使用 3rd 方模块的 Python 脚本的 shell 脚本?

Ned*_*ily 6

您需要在调用 Python 时指定 Anaconda Python 的绝对路径,而不是作为 shebang 行(显然 Automator 无论如何都会忽略)。在 Automator 下运行 shell 脚本时,您的 shell 启动配置文件可能没有运行,因此不会发生将 Anacondabin目录置于其上的更改PATH,从而导致python引用 system Python。试试这个。

#!/bin/sh

cd ~/Desktop/my_folder/
/Users/myName/anaconda/bin/python2.7 script.py
Run Code Online (Sandbox Code Playgroud)