You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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解释器路径

  1. 打开终端,输入which python或which python3,获取你常用的Python路径(比如/usr/local/bin/python3或/Users/zhouyu/.pyenv/shims/python)。
  2. 修改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行并设可执行权限

  1. 在autorun.py的第一行添加shebang,指定你的Python路径:
#!/usr/local/bin/python3
import msoffcrypto
import pathlib
import os
....
  1. 终端执行命令给脚本加可执行权限:
chmod +x /Users/zhouyu/Library/Application Scripts/com.apple.mail/autounlock.py
  1. 修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:27:24