os x El Capitan

时间:2016-08-23 12:54:26

标签: python macos

我正在学习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

其他包也是如此。

3 个答案:

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