AppleScript执行Python脚本遇模块及驱动路径问题求助
解决AppleScript执行Python脚本的依赖与PATH问题
问题1:ModuleNotFoundError(找不到requests模块)
终端能正常运行但AppleScript报错,核心原因是AppleScript的shell环境变量和终端不一致,默认未包含pip3安装模块的路径。
解决步骤:
- 在终端执行
which python3,获取你实际使用的Python3完整路径(比如/opt/homebrew/bin/python3或/usr/local/bin/python3)。 - 在AppleScript中调用该完整路径的Python,而非仅用
python3。示例:do shell script "/opt/homebrew/bin/python3 /Users/you/your_script.py" - 若仍有问题,可将终端的PYTHONPATH变量加入AppleScript的shell环境:
先在终端执行echo $PYTHONPATH得到路径,再修改AppleScript:do shell script "export PYTHONPATH=/path/from/echo && /opt/homebrew/bin/python3 /Users/you/your_script.py"
问题2:WebDriverException(geckodriver不在PATH中)
同样是环境变量PATH的差异,AppleScript默认的PATH不包含geckodriver所在目录。
解决方法二选一:
方法1:在AppleScript中扩展PATH
- 在终端执行
which geckodriver,获取其所在目录(比如/usr/local/bin)。 - 在AppleScript的shell命令中把该目录加入PATH,再执行脚本:
do shell script "export PATH=$PATH:/usr/local/bin && /opt/homebrew/bin/python3 /Users/you/your_script.py"
方法2:在Python脚本中直接指定geckodriver路径
无需依赖环境变量,直接在selenium代码里写死路径:
- 旧版selenium:
from selenium import webdriver driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver') - 新版selenium(4.x+):
from selenium import webdriver from selenium.webdriver.firefox.service import Service service = Service('/usr/local/bin/geckodriver') driver = webdriver.Firefox(service=service)
内容的提问来源于stack exchange,提问作者Lacer
相关产品推荐
相关产品推荐

