2016-03-11 59 views
1

更新的問題:爲什麼python3.5鏈接python2.7的numpy?

我用

sudo python3 
>>import numpy 

它的工作原理!

我使用以下意見建議:

刪除/usr/local/lib/python2.7/site-packages路徑。

問題解決了!

========的老問題===========

我使用的是Mac OS EI Capitan的。

Python2.7是默認版本; python3.5是從官方網站python3.5 for mac安裝的。

我已經在python2.7中安裝了numpy。現在我需要在python3.5中安裝numpy。

我用:

pip3 install numpy 

其返回

「的要求已經滿足(使用--upgrade升級): numpy的在/usr/local/lib/python2.7/site-packages 「

,當我在python3運行

python3 
>>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 170, 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 6, 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 

它鏈接2.7包..並顯示錯誤。

如何解決這個問題

(當我安裝SciPy的和sklearn類似的問題發生了)?

+1

檢查您的PYTHONPATH。我猜你在爲Python 2.7安裝numpy時,將你的PYTHONPATH設置爲包含'/ usr/local/lib/python2.7/site-packages'。 – Evert

+0

我使用'sudo python3'並解決了問題。但我不知道爲什麼會發生這種情況...... – bengxy

+0

謝謝,當我刪除這行時,它解決了。我很久以前在安裝opencv時添加了這一行...非常感謝。 – bengxy

回答

-3

避免這種情況的簡單方法是使用anaconda安裝所有這些模塊。 https://www.continuum.io/downloads 這將避免你手動安裝頭痛。

+2

如果OP使用'pip3'安裝numpy並使用'python3',則不需要。 – Evert

+0

是的,anaconda很容易使用... – bengxy

0

我遇到了同樣的問題。使用pip3卸載numpy並重新安裝,解決了問題。

pip3 uninstall numpy pip3 install numpy