我在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
答案 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