AppleScript调用Python脚本失败:msoffcrypto模块导入错误
问题解决:AppleScript调用Python脚本找不到模块
问题描述
我开发了一个需调用autorun.py的AppleScript,Python脚本开头代码:
import msoffcrypto import pathlib import os ....
AppleScript与Python脚本单独运行均正常,终端调用autorun.py也无问题,但通过以下AppleScript代码调用时:
set myPythonScript to POSIX path of "/Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py" set myVal to do shell script "python" & space & myPythonScript's quoted form display dialog myVal
Python脚本执行失败,报错:
Traceback (most recent call last):
File "/Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py", line 2, in
import msoffcrypto
ImportError: No module named msoffcrypto" number 1
原因
AppleScript的do shell script默认使用系统自带的Python环境,而终端里用的是用户自定义的Python环境(可能是brew安装、pyenv管理或虚拟环境),msoffcrypto模块只安装在后者里,导致调用时找不到模块。
解决方法
方法1:指定终端使用的Python解释器路径
- 打开终端,输入
which python或which python3,获取你常用的Python路径(比如/usr/local/bin/python3或/Users/zhouyu/.pyenv/shims/python)。 - 修改AppleScript代码,把
"python"替换成这个完整路径:
set myPythonScript to POSIX path of "/Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py" -- 替换为你终端输出的Python路径 set pythonPath to "/usr/local/bin/python3" set myVal to do shell script pythonPath & space & myPythonScript's quoted form display dialog myVal
方法2:给Python脚本添加shebang行并设可执行权限
- 在
autorun.py的第一行添加shebang,指定你的Python路径:
#!/usr/local/bin/python3 import msoffcrypto import pathlib import os ....
- 终端执行命令给脚本加可执行权限:
chmod +x /Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py
- 修改AppleScript直接调用脚本:
set myPythonScript to POSIX path of "/Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py" set myVal to do shell script myPythonScript's quoted form display dialog myVal
方法3:在shell命令中指定PATH环境变量
如果你的Python解释器在用户自定义路径里,可在do shell script中先设置PATH:
set myPythonScript to POSIX path of "/Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py" set myVal to do shell script "export PATH=/usr/local/bin:$PATH; python3 " & myPythonScript's quoted form display dialog myVal
内容的提问来源于stack exchange,提问作者fishjoe
相关产品推荐
相关产品推荐

