根本原因是pycharm启动时未继承anaconda环境的path,尤其缺失library\bin路径;解决方法是在run > edit configurations中为运行配置添加path=${anaconda_root}\library\bin;${path}。

PyCharm里import报DLL load failed,但Anaconda Prompt能跑通
根本原因是PyCharm启动时没继承Anaconda环境的PATH,尤其缺失Library\bin这个关键路径。Windows下很多科学计算包(比如matplotlib、scipy、gurobipy)依赖该目录下的DLL(如libopenblas.dll、libgurobi95.dll),而PyCharm默认只读取系统级环境变量,不自动加载conda激活环境的路径。
- 不要只在系统环境变量里加
Anaconda3和Scripts——漏掉Library\bin是90%问题的根源 - 桌面快捷方式启动的PyCharm通常完全不读取conda的
PATH,哪怕你已在Anaconda Prompt中conda activate myenv - 验证方法:在PyCharm的
Python Console里执行import os; print(os.environ.get("PATH")),对比Anaconda Prompt中echo %PATH%输出,看是否缺Library\bin
在PyCharm内部配置PATH比改系统变量更可靠
直接修改系统环境变量容易污染全局,且对已打开的PyCharm无效;推荐在项目级或运行配置中注入路径,精准生效。
- 打开
Run > Edit Configurations→ 选中你的运行配置 → 展开Environment variables→ 点Browse - 添加新变量:
PATH=${anaconda_root}\Library\bin;${PATH}(把${anaconda_root}替换成你实际路径,如D:\ProgramData\Anaconda3) - 如果用conda虚拟环境,确保
Python interpreter指向envs\myenv\python.exe,且Conda executable填对(PyCharm 2019.2+才有此字段) - 对
Python Console单独设置:进入Settings > Tools > Python Console→ 同样在Environment variables里补全Library\bin
gurobipy这类商业库要额外处理DLL定位
gurobipy不是纯Python包,它依赖Gurobi安装目录下的原生DLL(如gurobi95.dll)。即使PATH正确,PyCharm仍可能找不到——因为gurobipy初始化时会主动搜索GRB_LICENSE_FILE或硬编码路径。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 必须设置环境变量
GRB_LICENSE_FILE指向你的gurobi.lic文件(例如C:\gurobi\gurobi.lic) - 同时把Gurobi的
bin目录(如C:\gurobi950\win64\bin)加入PyCharm的PATH,顺序放在Library\bin之前 - 别只复制
gurobipy文件夹到site-packages——若DLL路径不对,照样ImportError - 测试代码务必用
gp.GRB_VERSION而非仅import gurobipy,后者可能静默失败
conda install和pip install混用引发的隐性冲突
像pillow、cryptography这类含C扩展的包,conda版和pip版的DLL ABI可能不兼容。PyCharm调用时若混合加载,就会出现“找不到指定的程序”而非“找不到指定的模块”。
- 优先用
conda install安装科学计算栈(numpy/scipy/matplotlib/torchvision) - 若必须用
pip,先conda uninstall对应包,再pip install --no-deps,避免依赖覆盖 - 遇到
idna、automat等纯Python包冲突,直接在PyCharm Terminal里pip install idna==2.10锁定版本 - 检查冲突命令:
conda list | findstr "pillow cryptography"和pip list | findstr "pillow cryptography",二者版本应一致
最易被忽略的是:PyCharm的Terminal默认不激活conda环境,需手动conda activate myenv;而Run Configuration里的环境变量设置,对Terminal无效——这是两个独立通道。










