2013-10-30 55 views
1

Ubuntu下(12.04),採用openblas到自己的環境中安裝蟒(2.7.5)與numpy的(1.8rc2)(/ DIN)。該numpy的site.cfg文件配置爲指向openblas,並編譯:numpy的Ubuntu的(12.04)下安裝引起的Python導入錯誤

$ python setup.py build 
$ sudo python setup.py install --prefix=/home/Programs/din/local 

$ python 

Python 2.7.5 (default, Oct 24 2013, 15:33:08) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 

>>> import numpy 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/Programs/din/local/lib/python2.7/site-packages/numpy/__init__.py", line 137, in <module> 
    import add_newdocs 
    File "/home/Programs/din/local/lib/python2.7/site-packages/numpy/add_newdocs.py", line 9, in <module> 
    from numpy.lib import add_newdoc 
    File "/home/Programs/din/local/lib/python2.7/site-packages/numpy/lib/__init__.py", line 4, in <module> 
    from type_check import * 
    File "/home/Programs/din/local/lib/python2.7/site-packages/numpy/lib/type_check.py", line 8, in <module> 
    import numpy.core.numeric as _nx 
    File "/home/Programs/din/local/lib/python2.7/site-packages/numpy/core/__init__.py", line 5, in <module> 
    import multiarray 
ImportError: 
"/home/Programs/din/local/lib/python2.7/site-packages/numpy/core/multiarray.so: undefined symbol: ERR_peek_last_error 

用Cython,GEVENT,和其他Python包已全部成功安裝到/ DIN但不是numpy的。 $ PATH和python sys.path已經被檢查過,並且都很好看。

有沒有人有想法嘗試?

+0

ERR_peek_last_error點與你的OpenSSL安裝問題。我建議重建openssl,因爲我不認爲其他軟件包需要它。 –

+0

uhmm。也許必須執行apt-get install libssl-dev?出於好奇,你怎麼知道這是一個openssl安裝問題? –

+0

ERR_peak_last_error是openssl的一部分。 –

回答

7

這也許不能直接解決您的具體問題,但如果你在Ubuntu 12.04,你可以apt-get。然後,因爲版本不會是最新版本,那麼我做pip install --upgrade。在pip之前做apt-get首先神奇似乎也安裝了正確的依賴關係;如果我先做pip install,它不起作用。

具體做法是:

sudo apt-get install python-numpy python-scipy libblas-dev liblapack-dev gfortran python-dev 
sudo pip install numpy --upgrade 
sudo pip install scipy --upgrade 
相關問題