根据错误信息,你遇到了两个主要问题:
🔴 问题分析
1️⃣ pandas模块缺失
ModuleNotFoundError: No module named 'pandas'
你尝试运行包含import pandas as pd的代码,但fno环境中没有安装pandas。
2️⃣ OpenMP库冲突(致命错误)
OMP: Error #15: Initializing libomp.dll, but found libiomp5md.dll already initialized
这是最常见的环境冲突问题,多个库(如numpy、pytorch、scipy)自带了不同的OpenMP运行时库,导致冲突。
3️⃣ GPU未识别
当前使用设备: cpu
说明CUDA没有正常工作,可能原因:
- PyTorch安装的是CPU版本
- CUDA驱动问题
- 环境变量问题
✅ 解决方案
步骤1:修复OpenMP冲突(最紧急)
在代码开头添加环境变量设置:
python
# 在所有import之前添加
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' # 临时解决方案
# 然后再导入其他模块
import argparse
import os
import random
...
或者在命令行中设置:
bash
# Windows
set KMP_DUPLICATE_LIB_OK=TRUE
# Linux/Mac
export KMP_DUPLICATE_LIB_OK=TRUE
步骤2:安装pandas(如果需要)
bash
conda activate fno
conda install pandas
步骤3:检查并修复GPU支持
bash
# 检查PyTorch是否支持CUDA
conda activate fno
python -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'CUDA版本: {torch.version.cuda}')"
# 如果CUDA不可用,重新安装GPU版本的PyTorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
步骤4:清理冲突的OpenMP库(推荐)
bash
# 卸载可能冲突的包
conda activate fno
conda remove numpy scipy --force
# 重新安装,确保使用conda-forge通道(统一OpenMP版本)
conda install -c conda-forge numpy scipy
🎯 完整修复流程
方案A:快速修复(临时)
在你的代码最开头添加:
python
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
# 然后继续你的代码...
import argparse
import os
import random
...
方案B:彻底修复(推荐)
bash
# 1. 激活环境
conda activate fno
# 2. 清理并重新安装关键包
conda remove pytorch torchvision torchaudio numpy scipy --force
conda clean --all
# 3. 重新安装(使用统一通道)
conda install -c pytorch -c nvidia pytorch torchvision torchaudio pytorch-cuda=11.8
conda install -c conda-forge numpy scipy pandas matplotlib
# 4. 验证安装
python -c "import torch; print(f'CUDA可用: {torch.cuda.is_available()}')"
python -c "import pandas; print('pandas已安装')"
📋 检查清单
运行以下命令检查环境状态:
bash
conda activate fno
# 检查PyTorch和CUDA
python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}')"
# 检查pandas
python -c "import pandas; print(f'pandas: {pandas.__version__}')"
# 检查numpy
python -c "import numpy; print(f'numpy: {numpy.__version__}')"
# 检查环境中的包
conda list | grep -E "torch|numpy|scipy|pandas"
💡 预防措施
-
使用环境变量 :在
.bashrc或系统环境变量中永久设置bashexport KMP_DUPLICATE_LIB_OK=TRUE -
统一安装源:尽量使用同一个conda通道(如conda-forge)
-
创建独立环境:为不同项目创建独立的conda环境
-
定期清理 :
conda clean --all定期清理缓存
建议先用方案A快速修复运行,然后用方案B彻底解决问题。 如果问题依然存在,可能需要重新创建conda环境。