2016-11-02 30 views
0

scipy.io`我的Python 3.5,當我嘗試導入scipy.io失敗與ImportError輸入蛋白'在Python 3.5

>>> from scipy import io 
----> from scipy import io 
/opt/rh/rh-python35/root/usr/lib64/python3.5/site-packages/scipy/io/__init__.py in <module>() 
---> from .matlab import loadmat, savemat, whosmat, byteordercodes 
/opt/rh/rh-python35/root/usr/lib64/python3.5/site-packages/scipy/io/matlab/__init__.py in <module>() 
---> from .mio import loadmat, savemat, whosmat 
/opt/rh/rh-python35/root/usr/lib64/python3.5/site-packages/scipy/io/matlab/mio.py in <module>() 
---> from .miobase import get_matfile_version, docfiller 
/opt/rh/rh-python35/root/usr/lib64/python3.5/site-packages/scipy/io/matlab/miobase.py in <module>() 
---> from six import reduce 
ImportError: cannot import name 'reduce' 

因此,根據this,顯然是在Python 3.5 recude從six.reduce改變到six.functools.reduce,實際上我可以用import sixsix.functools.reduce導入它。

因此,看起來像這個3.5版本的scipy有這個錯誤(也許?),2.7不會發生。有沒有辦法解決這個問題,我可以使用scipy.io

我有python 3.5.1 CentOS,scipy 0.17.0和numpy 1.10.4。

回答

0

在我的版本的scipy(版本號相同),在成功導入後,我看到了 '/usr/lib/python3/dist-packages/scipy/io/matlab/miobase.py'

from scipy._lib.six import reduce 

我numpy的是一個小更新,但在其他版本看起來是一樣的

而且six.py確實

if PY3: 
    import builtins 
    import functools 
    reduce = functools.reduce 
    zip = builtins.zip 
    xrange = builtins.range 
+0

的'scipy._lib.six'進口行之有效這裏,但是,我不知道如何解決我的問題。當我嘗試導入'scipy.io'時,它仍然失敗。我的目標是最終導入'scipy.io'! – TomCho

+0

所以'miobase.py'文件使用'從6 ...'?我想知道那是從哪裏來的。根據scipy github,在2014年完成了使用'_lib.six'的切換。在您的安裝中有一些有趣的事情。 – hpaulj

+0

還有一些其他的「scipy.io」錯誤問題;但是缺少一個'_lib.six.py'文件似乎比你的錯誤更常見。 – hpaulj