我知道以前有人问过这个问题,但我似乎找不到任何有效的方法。
我有一个automator任务,它运行一个python脚本(通过自制程序v3.7(,该脚本从OS Catalina中的automator shell脚本(/bin/zsh(导入包guessit(v3(。我将脚本的输出设置为回显到automator任务创建的日志。我已经能够将python脚本简化为这样,以展示有问题的行为:
from guessit import guessit
print("hello world")
- 按原样,automator日志输出为空(我猜脚本失败了,但错误是隐藏的。脚本执行后的其他shell回声仍然显示在日志中(
- 如果我删除导入,我会在自动售货机日志中得到"你好世界">
- 如果我从终端运行python脚本,包括导入,我会在终端中得到"helloworld">
- 如果我以/bin/sh的导入方式运行automator任务,并且在OS Mojave中,我会在automator日志中得到"你好世界">
这让我相信,当我升级到Catalina和/或zsh时,我的自动机脚本中的PATH出现了问题。
谢谢你的帮助!
我在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"