Python - Numpy安装和导入问题

时间:2015-10-17 15:31:48

标签: python numpy module

我在python中做了一些NLP工作(两者都是新的)。我用pip来安装模块'numpy'(sudo pip install numpy)。这很好用。

导入numpy以便在我自己的模块中使用时,我会收到以下几个错误。

 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导出路径

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

似乎不起作用。

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

任何帮助将不胜感激:)

提前致谢。 -A

4 个答案:

答案 0 :(得分:4)

问题已解决。

我遇到pip安装问题的原因是(感谢光伏)我正在使用命令:

“pip install moduleName”

而不是

“pip3.5 install moduleName”

这引起了各种各样的复杂情况,因为我正在运行python 3.5而“pip”命令是针对2.7的。

再次感谢。

答案 1 :(得分:0)

FWIW - 以及将来用Google搜索此错误的人 - 我在通过Homebrew单独安装numpy时遇到了这个问题。它导致我所有的Python安装(通过pyenv)引用numpy的/usr/local/lib安装(这是Homebrew安装它的地方)。通过brew uninstall numpy卸载它修复了错误。

(我不记得为什么我有一个自制的安装numpy,但哦,好吧)

答案 2 :(得分:0)

我遇到了同样的问题。

我尝试过很多方法:

$pip uninstall numpy

但这并没有解决问题。

我假设一个主要原因是我有anaconda多Python环境(我创建了py27和py35)。因此,PYTHONPATH包括py27和py35的路径。

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

$conda install numpy

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

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

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

我通过以下方式卸载numpy:

$brew uninstall numpy.

结果,删除了额外的模糊路径。最后,它有效。

答案 3 :(得分:0)

对我有用的是请求 pip 从源代码构建 numpy,而不是使用预编译的 Wheel 二进制文件:

pip install --no-binary numpy -r requirements.txt