在一个Python文件中可导入openpyxl,另一个文件却报ModuleNotFoundError
你遇到的核心问题肯定是两个脚本使用的Python环境不一致——test.py能正常导入是因为它运行在已经安装openpyxl的环境里,而main.py调用的是另一个没装这个包的Python解释器。下面是几个针对性的解决步骤,亲测有效:
第一步:确认环境差异
先验证两个脚本的运行环境是否不同,在test.py和main.py的最顶部都添加这几行代码:
import sys print("当前Python解释器路径:", sys.executable)
分别运行两个脚本,对比输出的路径。如果路径不一样,就实锤是环境问题了。
情况1:虚拟环境未激活或选错
如果你用了虚拟环境(比如venv),大概率是运行main.py时没激活对应环境:
- Windows系统:打开命令行进入项目目录,先运行
venv\Scripts\activate(把venv换成你的虚拟环境文件夹名),激活成功后再执行python main.py。 - Mac/Linux系统:进入项目目录,运行
source venv/bin/activate激活环境,再运行python main.py。
情况2:全局多Python版本共存
如果你的电脑装了多个Python版本(比如Python3.8和3.9),可能test.py用的是装了包的版本,main.py用的是没装的:
找到main.py对应的Python路径(比如你报错里的C:\Python39\python.exe),直接在命令行运行:
C:\Python39\python.exe -m pip install openpyxl
这会强制给这个特定版本的Python安装openpyxl,避免和其他版本的pip混淆。
情况3:IDE运行配置错误
如果用IDE(比如PyCharm、VS Code)运行脚本,可能IDE给main.py分配了错误的解释器:
- PyCharm:点击右上角运行配置下拉框,选择
Edit Configurations,在Python interpreter里选和test.py相同的解释器,保存后重新运行。 - VS Code:打开命令面板(Ctrl+Shift+P),输入
Python: Select Interpreter,选择和test.py运行时一致的解释器,再运行main.py。
附你遇到的错误信息:
C:\Python39\python.exe "C:/Users/User/Desktop/Wash & Fold Laundry Billing System/main.py"
Traceback (most recent call last):
File "C:\Users\User\Desktop\Wash & Fold Laundry Billing System\main.py", line 5, in
from openpyxl import Workbook
ModuleNotFoundError: No module named 'openpyxl'
Process finished with exit code 1
内容的提问来源于stack exchange,提问作者Digvijay Jadav

