pip安装至Anaconda环境的h2o、simpledbf包无法导入求助
问题描述
我通过pip将h2o和simpledbf两个包安装到了我的Anaconda环境中,执行conda list命令得到以下结果:
packages in environment at /Users/username/anaconda3/envs/python3:Name Version Build Channelca-certificates 2018.03.07 0
certifi 2018.1.18 py36_0
chardet 3.0.4
colorama 0.3.9
future 0.16.0
h2o 3.18.0.5
idna 2.6
libcxx 4.0.1 h579ed51_0
libcxxabi 4.0.1 hebd6815_0
libedit 3.1 hb4e282d_0
libffi 3.2.1 h475c297_4
ncurses 6.0 ...
但这些通过pip安装的包却无法导入,请问该如何解决?
解决方案
这种pip安装的包在Anaconda环境里导不进的情况我之前也碰到过,大概率是pip和conda环境的路径没对齐,或者你用错了pip版本。试试下面这些步骤:
先确认你真的在目标conda环境里操作
先激活你的python3环境,确保命令行前缀显示(python3):conda activate python3要是之前没激活就直接装包,那包可能没装到正确的环境里。
检查pip是不是属于当前conda环境
有时候系统自带的pip会抢着干活,导致包装到全局Python里去了。你可以看看当前pip的路径:which pip正常的话,路径应该是
/Users/username/anaconda3/envs/python3/bin/pip。如果显示的是别的路径(比如/usr/bin/pip),那你得用conda环境里的pip重新装:/Users/username/anaconda3/envs/python3/bin/pip install h2o simpledbf确认你用的Python是conda环境里的版本
同样,检查Python的路径:which python正确路径应该是
/Users/username/anaconda3/envs/python3/bin/python。要是你用的是全局Python,那肯定找不到conda环境里的包,切换到环境内的Python就行。卸载重装后测试导入
如果路径都对,但还是导不进,先把包卸载再重新装一遍:pip uninstall h2o simpledbf pip install h2o simpledbf装完之后打开Python交互界面试试:
import h2o import simpledbf没报错的话就搞定了。
手动检查包是否在环境的site-packages里
你也可以直接去conda环境的site-packages目录看看有没有这两个包:ls /Users/username/anaconda3/envs/python3/lib/python3.6/site-packages | grep -E "h2o|simpledbf"要是能看到对应的文件夹,说明安装成功了。这时候如果还是导不进,可能是Python的路径配置问题,你可以在Python里打印路径看看:
import sys print(sys.path)确认conda环境的site-packages路径在列表里,要是不在,手动加进去就行:
sys.path.append("/Users/username/anaconda3/envs/python3/lib/python3.6/site-packages")不过这种情况很少见,一般激活环境后路径会自动配置好。
内容的提问来源于stack exchange,提问作者Stefano Potter

