2016-11-02 4 views
0

ich habe Python 3.5 und wenn ich versuche, scipy.io zu importieren scheitert es mit einem ImportError:Importin `scipy.io` in 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' 

So, nach this, anscheinend in Python 3.5 recude geändert von six.reduce zu six.functools.reduce, und in der Tat kann ich es mit import six und six.functools.reduce importieren.

Also, sieht aus wie die 3.5 Version von scipy hat diesen Fehler (vielleicht?), Die nicht für 2.7 passieren. Gibt es eine Möglichkeit, das zu beheben, damit ich scipy.io verwenden kann?

Ich habe CentOs mit Python 3.5.1, Scipy 0.17.0 und Numpy 1.10.4.

Antwort

0

In meiner Version von scipy (gleicher Versionsnummer), nach einem erfolgreichen Import sehe ich in '/usr/lib/python3/dist-packages/scipy/io/matlab/miobase.py'

from scipy._lib.six import reduce 

Mein numpy ist ein wenig höher, aber ansonsten Version gleich aussehen

Und six.py tut

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

der 'scipy._lib.six' Import arbeitete hier gut, aber ich bin mir nicht sicher, wie das löst mein Problem. Wenn ich versuche, 'scipy.io' zu importieren, schlägt es immer noch fehl. Mein Ziel ist es letztendlich, 'scipy.io' zu importieren! – TomCho

+0

Also verwendet die 'miobase.py' Datei' von sechs ... '? Ich frage mich, woher das kam. Laut scipy github wurde 2014 mit '_lib.six' umgegangen. Etwas ist witzig in der Installation. – hpaulj

+0

Es gibt einige andere SO 'scipy.io' Fehler Fragen; aber eine fehlende '_lib.six.py' Datei scheint häufiger als Ihr Fehler. – hpaulj