虚拟环境中已安装openpyxl仍报ModuleNotFoundError的求助
虚拟环境中openpyxl模块找不到的解决方案
问题现象
- 虚拟环境内已通过
pip install openpyxl/pip3 install openpyxl/python3 -m pip install openpyxl安装openpyxl,pip list显示模块已存在:
Package Version ---------- ------- et-xmlfile 1.1.0 openpyxl 3.1.2 pip 24.0 setuptools 69.5.1 wheel 0.43.0
- 运行脚本时抛出错误:
ModuleNotFoundError: No module named 'openpyxl'
- 回溯信息显示脚本使用的是系统全局Python 3.11.8(路径
/opt/homebrew/bin/scrapy依赖系统级scrapy包),而非虚拟环境的Python。 which python3指向虚拟环境路径,但系统环境pip list无openpyxl。
核心原因
你调用的scrapy是系统全局安装的版本,它绑定了系统Python解释器,无法识别虚拟环境中安装的第三方模块。
解决步骤
激活虚拟环境
确保虚拟环境处于激活状态,执行:source /Users/adam/pythondev/myproj/.venv/bin/activate激活后命令行前缀会显示
(.venv)标识。在虚拟环境内安装scrapy
激活环境后,安装独立的scrapy版本:pip install scrapy此时虚拟环境内的scrapy会绑定虚拟环境的Python解释器。
用虚拟环境的scrapy运行脚本
保持环境激活状态,执行:scrapy crawl [你的爬虫名称]这样scrapy就能找到虚拟环境中安装的openpyxl了。
备选方案(无需重装scrapy)
直接使用虚拟环境的Python解释器执行脚本:
/Users/adam/pythondev/myproj/.venv/bin/python /Users/adam/pythondev/myproj/app.py
内容的提问来源于stack exchange,提问作者user984621
相关产品推荐
相关产品推荐

