2014-06-28 97 views
1

我想在OSX Automator中运行使用Run Shell Script中的几个第三方模块(numpy,pandas,Twython)的Python脚本。我编写了一个运行成功的hello_world.py脚本,所以我确信问题是由第三方模块引起的。OSX Automator无法使用shell中的模块运行Python脚本

在终端中,我可以成功执行: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 

如何编写一个适用于使用第三方模块的Python脚本的shell脚本?

回答

4

当您调用Python时,您需要指定Anaconda Python的绝对路径,而不是作为shebang行(它显然被Automator忽略)。在Automator下运行shell脚本时,您的shell启动配置文件可能未运行,因此导致Anaconda bin目录不在PATH上的更改不会发生,从而导致python引用系统Python。试试这个。

#!/bin/sh 

cd ~/Desktop/my_folder/ 
/Users/myName/anaconda/bin/python2.7 script.py 
+0

感谢您的帮助,Ned! – blahblahblah

+0

为了说明这是如何工作的,你将目录改为'/ Desktop/my_folder',然后运行到'/Users/myName/anaconda/bin/python2.7 script.py'? – natemcintosh

+0

等一下,我明白了。 'cd /my_folder'到你的'my_script.py'所在的位置,然后'/ Users/myName/anaconda/bin/python2.7'告诉计算机使用Anaconda的python版本,而不是系统版本的python运行'my_script.py' – natemcintosh