关于Python:Python-Numpy安装和导入问题

Python - Numpy install and import Issue

我已经使用pip安装模块numpy(sudo pip install numpy)。

导入numpy以在我自己的模块中使用时,出现以下几个错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Traceback (most recent call last):
  File"<pyshell#65>", line 1, in <module>
    import numpy
  File"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/core/multiarray.so, 2): Symbol not found: _PyBuffer_Type
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/core/multiarray.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/numpy/core/multiarray.so

我假设该错误与multiarray.so文件有关。 我试过将其关闭然后再打开(卸载后重新安装),并添加where pip最初将模块保存到python导出路径

1
(export PYTHONPATH="usr/local/lib/python2.7/site-packages")

似乎不起作用。

在终端中使用which python给了我Python 2.7.6 **,但是我从该站点下载了Python 3.5。


问题解决了。

我安装pip出现问题的原因归结为我在使用以下命令(感谢pv):

" pip安装moduleName"

而不是

" pip3.5安装moduleName"

这引起了各种复杂情况,因为我正在运行python 3.5,而" pip"命令适用于2.7。

再次感谢。


我遇到了同样的问题。

我尝试了很多方法,例如:

1
$pip uninstall numpy

但这并不能解决问题。

我认为一个主要原因是我拥有anaconda多Python环境(我创建了py27和py35)。结果,PYTHONPATH包含了py27和py35的路径。

我的默认python env是py35。所以使用

1
$conda install numpy

将在anaconda python3.5路径下安装numpy。

卸载numpy时,我们不确定要导出哪个numpy路径,也许仅适用于我的情况。

因此,我指的是@Dan Nhuyen的解决方案。

我通过以下方式卸载numpy:

1
$brew uninstall numpy.

结果,多余的歧义路径被删除。最后,它可以工作。


FWIW-以及将来搜寻该错误的人-通过Homebrew单独安装numpy时遇到了此问题。这导致我所有的Python安装(通过pyenv)都引用了numpy的/usr/local/lib安装(Homebrew将其安装在此处)。通过brew uninstall numpy卸载可修复该错误。

(我不记得为什么我要用自制软件安装numpy,但是哦)