从zsh执行时,Automator在python脚本中找不到包导入

时间:2019-11-05 18:26:41

标签: python path zsh automator macos-catalina

我知道以前有很多不同的方法问过这个问题,但是我似乎找不到任何可行的方法。

我有一个自动程序任务,该任务运行python脚本(通过自制程序通过v3.7),该脚本从OS Catalina中的自动程序外壳程序脚本(/ bin / zsh)导入包guessit(v3)。我将脚本的输出设置为回显到自动任务创建的日志。我已经能够将python脚本缩减为这样,以显示出有问题的行为:

from guessit import guessit
print("hello world")
  • 按原样,automator日志输出为空白(我猜脚本失败了,但是错误被隐藏了。脚本执行后,其他shell回显仍然显示在日志中)
  • 如果删除导入,则会在自动日志中显示“ hello world”。
  • 如果我从包含导入的终端运行python脚本,则会在终端中出现“ hello world”。
  • 如果我使用/ bin / sh作为导入运行automator任务,并且在OS Mojave中,我在自动化日志中会看到“ hello world”。

这使我相信,当我升级到Catalina和/或zsh时,自动化脚本中的PATH出现了问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我在我的shell脚本的顶部包括了PATH,并且简单的导入按预期进行了。在测试时,我将echo $PATH的输出与automator中相同的$ PATH进行了比较。 Automator的$ PATH仅是/ usr / local / bin,而我的终端机$ PATH包括其他条目,例如自制软件的安装目录。我在我的automator shell脚本的顶部添加了终端的输出:

PATH="/usr/local/Cellar/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH"