Ubuntu 16.04.3下pip3安装h5py时崩溃求助
解决pip3崩溃报错
AttributeError: '_NamespacePath' object has no attribute 'sort'并成功安装h5py 这个错误是由于你的pip和setuptools版本不兼容(尤其是老版本pip在处理命名空间包时的bug)导致的,结合你Ubuntu 16.04.3 LTS + Python3.5的环境,按以下步骤修复:
步骤1:修复pip本身
因为当前pip3已经无法正常运行,我们用Python自带的ensurepip模块来重新安装/升级pip,适配你的Python3.5版本:
sudo python3 -m ensurepip --upgrade
这个命令会自动修复损坏的pip文件,升级到与当前Python环境兼容的版本。
步骤2:升级setuptools
命名空间路径的问题也和setuptools版本有关,执行以下命令完成升级:
sudo pip3 install --upgrade setuptools
步骤3:安装h5py(先补全系统依赖)
h5py需要依赖系统层面的HDF5库,先安装这个基础依赖:
sudo apt-get install libhdf5-dev
之后你可以选择安装最新兼容版本的h5py,或者指定你之前尝试的2.7.0rc2版本:
# 安装最新兼容版本 pip3 install h5py # 或者指定目标版本 pip3 install h5py==2.7.0rc2
问题原因说明
你之前用pip3安装过很多包,大概率是某次安装操作意外损坏了pip/setuptools的文件,或是安装了不兼容的版本组合,触发了老版本pip的bug——旧版pip依赖的pkg_resources模块在处理_NamespacePath对象时调用了不存在的sort方法,升级pip和setuptools后就能直接修复这个问题。
内容的提问来源于stack exchange,提问作者Alexander Sickert
相关产品推荐
相关产品推荐

