2013-04-05 36 views
2

我最近從python3.2移到Python3.3。我安裝了Numpy 1.7.0和Scipy 0.11.0。我在Scientific Linux 6.4上運行所有這些。 但是當我運行:在python3.3,numpy中導入scipy.integrate 1.7

from scipy import integrate 

我得到這個錯誤:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python3.3/site-packages/scipy/integrate/__init__.py", line 50, in <module> 
     from .quadrature import * 
    File "/usr/local/lib/python3.3/site-packages/scipy/integrate/quadrature.py", line 5, in <module> 
    from scipy.special.orthogonal import p_roots 
    File "/usr/local/lib/python3.3/site-packages/scipy/special/__init__.py", line 532, in <module> 
    from .lambertw import lambertw 
    File "lambertw.pyx", line 24, in init scipy.special.lambertw (scipy/special/lambertw.c:1588) 
ValueError: level must be >= 0 

因此,我安裝SciPy的0.12.0c1,但問題仍然存在。你能幫我解決這個問題嗎?

非常感謝你提前

+1

這裏有人可能會提供幫助,但在我看來,如果軟件包甚至無法導入,那肯定是scipy的一部分(或者至少是誰打包scipy)的一個bug。如果您在郵件列表中提交錯誤報告和/或問題,您可能會有更好的運氣。 – mgilson 2013-04-05 12:08:31

+0

我發現這兩個鏈接:https://bugs.archlinux.org/task/32072和http://projects.scipy.org/scipy/ticket/1739第一個評論說它已被修復在一個包中這對他們有效。 – makhlaghi 2013-04-05 12:29:13

+0

無法在此處使用相同版本再現此錯誤。我在我的系統上搜索了lambert.pyx文件,但只能找到lambert.py。我發現.pyx文件用cython編譯爲.c文件,然後用C編譯器編譯爲庫。可能它必須重新編譯爲使用Python 3.3。 – eminor 2013-04-05 12:32:26

回答

3

答案是SciPy的0.11.0不與Python 3.3兼容。

您需要等待0.12.0或下載發行候選版本0.12.0rc1,或使用上述註釋中提到的Cython修復程序重新編譯。

但是,這個錯誤固定在0.12.0rc1。你很可能在安裝時犯了一個錯誤---在0.12.0rc1中沒有叫lambertw.c的文件。

+0

非常感謝。由於問題仍然存在於0.12.0rc1中。我會等待scipy 0.12.0。 – makhlaghi 2013-04-05 15:15:32

+0

這固定在0.12.0rc1中,你應該仔細檢查你是否在安裝時沒有犯錯誤。 – 2013-04-05 15:24:24

+0

安裝scipy 0.12.0rc1並導入後,我檢查了scipy .__ version__和0.12.0rc1顯示。也許因爲我將它安裝在scipy 0.11.0上,舊安裝的某些部分仍然存在。你知道我可以完全刪除以前的安裝嗎? – makhlaghi 2013-04-06 07:06:29