如何强制Python导入时使用pip安装的库而非conda安装的库
原因
出现该问题的核心原因是Python模块搜索路径的优先级问题:conda安装的numpy所在路径在pip安装路径之前,Python会优先加载conda环境里的1.15.0旧版本,无法识别pip安装的1.19.5版本。
可用解决方案
- 方案一:临时调整搜索路径(单次运行生效,无需修改环境配置)
- 先查询pip安装numpy的路径,执行命令:
pip show numpy | grep Location
得到的输出类似/home/xxx/.local/lib/python3.6/site-packages,记录该路径。 - 导入pandas前手动把pip路径加到搜索路径最前面,代码如下:
import sys # 替换为上一步查到的pip包路径 sys.path.insert(0, "/home/xxx/.local/lib/python3.6/site-packages") import numpy # 验证版本是否为1.19.5,确认无误再导入pandas print(numpy.__version__) import pandas - 先查询pip安装numpy的路径,执行命令:
- 方案二:卸载conda环境内的旧版本numpy(永久生效,推荐)
直接执行命令卸载conda安装的numpy,之后Python会自动匹配pip安装的高版本:conda remove numpy
卸载时如果提示需要同步卸载关联依赖包,确认无影响后确认操作即可,操作完成后直接导入pandas就能正常运行。 - 方案三:配置PYTHONPATH环境变量(永久生效,无需卸载conda包)
把pip包路径添加到PYTHONPATH环境变量最前端,Linux环境下操作如下:- 打开用户配置文件:
vi ~/.bashrc(如果用zsh则是~/.zshrc) - 在文件末尾添加一行,替换为你的pip包路径:
export PYTHONPATH="/home/xxx/.local/lib/python3.6/site-packages:$PYTHONPATH" - 执行
source ~/.bashrc(对应zsh执行source ~/.zshrc)生效配置,之后启动Python都会优先加载pip路径下的包。
- 打开用户配置文件:
内容的提问来源于stack exchange,提问作者ca9163d9
相关产品推荐
相关产品推荐

