我正在学习python而我正在使用OS X.我已经安装了anaconda 3并使用python 3.5设置了名为testenv的env。然后我激活了最近创建的env并安装了几个包,如numpy,pandas和opencv3。然而,当我运行python shell并输入“import numpy”时,我收到以下错误:
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/numpy/__init__.py", line 180, in <module>
from . import add_newdocs
File "/usr/local/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/usr/local/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/usr/local/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/usr/local/lib/python2.7/site-packages/numpy/core/__init__.py", line 14, in <module>
from . import multiarray
ImportError: dlopen(/usr/local/lib/python2.7/site-packages/numpy/core/multiarray.so, 2): Symbol not found: _PyBuffer_Type
Referenced from: /usr/local/lib/python2.7/site-packages/numpy/core/multiarray.so
Expected in: flat namespace
in /usr/local/lib/python2.7/site-packages/numpy/core/multiarray.so
其他包也是如此。
答案 0 :(得分:0)
文件“/usr/local/lib/python2.7/site-packages/numpy/init.py”,行 180,在
Python正在从系统的Python软件包中获取软件包,而不是从virtualenv中安装的软件包中获取软件包,即testenv
。
请确保您已使用以下内容激活了virtualenv:
source testenv/bin/activate
然后尝试运行Python。
你说你用Python 3.5
设置了它,但它正在用python2.7
选择路径。
如果能解决您的问题,请告诉我。
答案 1 :(得分:0)
我只需编写此命令即可解决此问题:
sudo python3 -m pip install --upgrade numpy
另一种解决方法是消除PYTHONPATH中的/usr/local/lib/python2.7
答案 2 :(得分:0)
在Mac上....这是如何安全地执行此操作
brew install python3
现在让我们添加一个名为 pe35
的虚拟环境python3 -m venv ~/pe35
现在让我们使用virtualenv
source ~/pe35/bin/activate
如果你想要一个符号 - 把它放在你的.bash_profile
中 alias pe35='source ~/pe35/bin/activate'
现在在你的virtualenv中安装numpy
pip install numpy