【问题标题】:OSX Automator failing to run Python script with modules from shellOSX Automator 无法使用 shell 中的模块运行 Python 脚本
【发布时间】:2014-06-28 04:47:27
【问题描述】:

我正在尝试在 OSX Automator 中运行使用来自Run Shell Script 的一些第 3 方模块(numpy、pandas、Twython)的 Python 脚本。我写了一个成功运行的 hello_world.py 脚本,所以我确定问题出在第 3 方模块上。

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

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

【问题讨论】:

    标签: python macos shell automator twython


    【解决方案1】:

    您需要在调用 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
    

    【讨论】:

    • 感谢您的帮助,内德!
    • 为了澄清这是如何工作的,您将目录更改为/Desktop/my_folder,然后运行到/Users/myName/anaconda/bin/python2.7 script.py?
    • 等等,我想通了。 cd <path>/my_folder 带到你的my_script.py 所在的位置,然后/Users/myName/anaconda/bin/python2.7 告诉计算机使用Anaconda 的python 版本而不是系统的python 版本来运行my_script.py
    猜你喜欢
    • 2016-02-29
    • 2021-05-11
    • 1970-01-01
    • 2014-09-29
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多