导入pandas时报错ModuleNotFoundError: No module named 'pandas.compat'求助
问题分析
从报错路径能看到核心矛盾:你在conda的PyPSA环境中运行代码,但导入pandas时,系统却优先读取了\\...\<username>\AppData\Roaming\Python\Python38\site-packages这个用户级全局Python包目录,而非conda环境自带的site-packages。这说明环境优先级出现异常,存在全局包干扰或环境未正确激活的问题。另外,pandas.compat模块在pandas 2.0+版本已被移除,若全局目录里的pandas是高版本,也会触发该报错。
可能的原因
- conda环境未正确激活,运行代码时实际调用了全局Python环境
- 用户级全局Python目录下的pandas包损坏或版本不兼容,覆盖了conda环境内的包
- 系统PATH环境变量中,全局Python路径优先级高于conda环境路径
解决方案
1. 确认conda环境激活状态
- 打开Anaconda Prompt,执行
conda activate PyPSA,确保命令行前缀显示(PyPSA) - 执行
where python(Windows)或which python(Linux/macOS),验证输出路径为C:\Users\<username>\.conda\envs\PyPSA\python.exe - 执行
pip list查看pandas版本:若为2.0+,而pypsa依赖旧版pandas,执行pip install pandas==1.5.3降级适配
2. 清理全局包干扰
直接删除\\...\<username>\AppData\Roaming\Python\Python38\site-packages下所有pandas相关文件夹(包括pandas、pandas-*.dist-info),避免全局包覆盖conda环境内的包。
3. 重建conda环境(前两步无效时)
# 删除现有环境 conda remove --name PyPSA --all # 新建环境并指定兼容的pandas版本 conda create -n PyPSA python=3.8 pandas=1.5.3 # 激活环境并安装pypsa conda activate PyPSA pip install pypsa
关于重装Anaconda与彻底重置环境
- 重装Anaconda可以解决问题,但属于下策——问题本质是环境优先级和包污染,而非Anaconda本身损坏。
- 彻底重置Python环境需删除的文件:
- 用户目录下的
.conda文件夹(conda环境存储目录) AppData\Roaming\Python文件夹(用户级全局包)AppData\Local\Programs\Python(若安装了独立Python)- 系统环境变量中与Python/Anaconda相关的路径(操作前需备份,避免误删其他路径)
- 用户目录下的
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

