如何在MacOSX上正确卸载numpy?
我在Mac上,我安装numpy
,并sklearn
按照这个顺序。现在,我遇到了一些已经在SO上多次提到的错误:
pyklem和终端中的sklearn“
numpy.dtype的大小错误,请尝试重新编译”
ValueError:numpy.dtype的大小错误,请尝试重新编译
从sklearn导入时出现ImportError:无法导入名称check_build
因此,我尝试通过卸载numpy
并重新安装以前的版本来纠正此错误。
1)sudo pip install --upgrade numpy
..赋予权限错误
...OSError: [Errno 1] Operation not permitted: '/tmp/pip-OVY0Vq-
uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-
info'...
2)我尝试过brew uninstall numpy
,但import numpy
即使重新启动Shell后仍然可以使用。
我唯一能想到的就是手动删除所有numpy
文件,在Mac上可以找到 sudo rm -rf
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy
....但即使那样也给我一个权限错误。是什么赋予了?
-
为了解决这个问题,我做了以下工作:(请注意,由于我没有进行彻底的测试,因此尚不清楚是哪一个解决了问题)。
1)在Python.org上安装了python,而不是Mac的愚蠢版本
2)重新安装了所有像模块
numpy
,scipy
,matplotlib
,sklearn
,跑这一点:hash -r python
根据这个来源:找不到符号:__PyCodecInfo_GetIncrementalDecoder,因为它不会使Python使用模块的缓存版本。3)然后,我意识到我遇到了这个问题:https :
//github.com/scipy/scipy/issues/5093。要解决此问题,我必须确保scipy
使用python -m pip install scipy='0.15.0'
而不是just安装了模块pip install scipy='0.15.0'
,因为这基于以下来源解决了该问题:无法从site-
packages目录中加载通过pip安装的Python模块。因此,总而言之,事实证明,由安装的内容
pip
和python
从终端执行时导入的内容之间确实有很大的不同。因此,要确保使用pip将模块安装到特定的python中,可以使用python -m pip install <package name>
。