2016-08-09 155 views
3

Ich erhalte einen Importfehler von in einem jupyter Notebook. Der verwirrende Teil ist, dass ich nicht den gleichen oder irgendeinen Fehler in einem iPython-Terminal bekomme, aber ich bin in einem Standard-Python-Terminal. Das führt mich zu der Annahme, dass meine Sitzung einen anderen Verknüpfungspfad verwendet als meine anderen Sitzungen, aber ich konnte nicht herausfinden, wie ich das angehen/debuggen/beheben kann.Conda/Python: Importfehler - Bild nicht nur in Jupiter-Notebook gefunden

Meine Fragen:

  1. Hat jemand lief in dieser oder etwas ähnliches?
  2. Sollte jupyter in den Terminal- und Notebook-Sitzungen nicht denselben Bibliothekspfad verwenden?
  3. Ich habe meine Pfadeinstellungen von conda info unten eingefügt. Geht irgendjemandem etwas davon aus, wie/warum das passiert?

In einem IPython Terminal

$ ipython 
Python 3.5.2 |Anaconda custom (x86_64)| (default, Jul 2 2016, 17:52:12) 
Type "copyright", "credits" or "license" for more information. 

IPython 4.2.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

In [1]: import sys 

In [2]: print(sys.executable) 
/Users/jhamman/anaconda/bin/python 

In [3]: import scipy.io 

In [4]: 

In der Standard-Python-Interpreter

$ python 
Python 3.5.2 |Anaconda custom (x86_64)| (default, Jul 2 2016, 17:52:12) 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> print(sys.executable) 
/Users/jhamman/anaconda/bin/python 
>>> import scipy.io 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/__init__.py", line 97, in <module> 
    from .matlab import loadmat, savemat, whosmat, byteordercodes 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/__init__.py", line 13, in <module> 
    from .mio import loadmat, savemat, whosmat 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/mio.py", line 12, in <module> 
    from .miobase import get_matfile_version, docfiller 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/miobase.py", line 22, in <module> 
    from scipy.misc import doccer 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/misc/__init__.py", line 51, in <module> 
    from scipy.special import comb, factorial, factorial2, factorialk 
    File "/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/__init__.py", line 636, in <module> 
    from ._ufuncs import * 
ImportError: dlopen(/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/_ufuncs.so, 2): Library not loaded: /usr/local/lib/libgcc_s.1.dylib 
    Referenced from: /Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/_ufuncs.so 
    Reason: image not found 

In Jupyter Notebook

import sys 
print(sys.executable) 

/Users/jhamman/anaconda/bin/python 
import scipy.io 
ImportError        Traceback (most recent call last) 
<ipython-input-8-05f698096e44> in <module>() 
----> 1 import scipy.io 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/__init__.py in <module>() 
    95 
    96 # matfile read and write 
---> 97 from .matlab import loadmat, savemat, whosmat, byteordercodes 
    98 
    99 # netCDF file support 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/__init__.py in <module>() 
    11 
    12 # Matlab file read and write utilities 
---> 13 from .mio import loadmat, savemat, whosmat 
    14 from . import byteordercodes 
    15 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/mio.py in <module>() 
    10 from scipy._lib.six import string_types 
    11 
---> 12 from .miobase import get_matfile_version, docfiller 
    13 from .mio4 import MatFile4Reader, MatFile4Writer 
    14 from .mio5 import MatFile5Reader, MatFile5Writer 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/io/matlab/miobase.py in <module>() 
    20  byteord = ord 
    21 
---> 22 from scipy.misc import doccer 
    23 
    24 from . import byteordercodes as boc 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/misc/__init__.py in <module>() 
    49 from .common import * 
    50 from numpy import who, source, info as _info 
---> 51 from scipy.special import comb, factorial, factorial2, factorialk 
    52 
    53 import sys 

/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/__init__.py in <module>() 
    634 from __future__ import division, print_function, absolute_import 
    635 
--> 636 from ._ufuncs import * 
    637 
    638 from .basic import * 

ImportError: dlopen(/Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/_ufuncs.so, 2): Library not loaded: /usr/local/lib/libgcc_s.1.dylib 
    Referenced from: /Users/jhamman/anaconda/lib/python3.5/site-packages/scipy/special/_ufuncs.so 
    Reason: image not found 

Eine letzte Anmerkung, hier ist die Müllkippe von conda info:

$ conda info -a 
Current conda install: 

      platform : osx-64 
     conda version : 4.1.11 
    conda-env version : 2.5.2 
    conda-build version : 1.21.3 
     python version : 3.5.2.final.0 
    requests version : 2.10.0 
    root environment : /Users/jhamman/anaconda (writable) 
    default environment : /Users/jhamman/anaconda 
    envs directories : /Users/jhamman/anaconda/envs 
     package cache : /Users/jhamman/anaconda/pkgs 
     channel URLs : https://repo.continuum.io/pkgs/free/osx-64/ 
         https://repo.continuum.io/pkgs/free/noarch/ 
         https://repo.continuum.io/pkgs/pro/osx-64/ 
         https://repo.continuum.io/pkgs/pro/noarch/ 
      config file : None 
     offline mode : False 
    is foreign system : False 

# conda environments: 
# 
root     * /Users/jhamman/anaconda 

sys.version: 3.5.2 |Anaconda custom (x86_64)| (defaul... 
sys.prefix: /Users/jhamman/anaconda 
sys.executable: /Users/jhamman/anaconda/bin/python3 
conda location: /Users/jhamman/anaconda/lib/python3.5/site-packages/conda 
conda-build: /Users/jhamman/anaconda/bin/conda-build 
conda-convert: /Users/jhamman/anaconda/bin/conda-convert 
conda-develop: /Users/jhamman/anaconda/bin/conda-develop 
conda-env: /Users/jhamman/anaconda/bin/conda-env 
conda-index: /Users/jhamman/anaconda/bin/conda-index 
conda-inspect: /Users/jhamman/anaconda/bin/conda-inspect 
conda-metapackage: /Users/jhamman/anaconda/bin/conda-metapackage 
conda-pipbuild: /Users/jhamman/anaconda/bin/conda-pipbuild 
conda-render: /Users/jhamman/anaconda/bin/conda-render 
conda-server: /Users/jhamman/anaconda/bin/conda-server 
conda-sign: /Users/jhamman/anaconda/bin/conda-sign 
conda-skeleton: /Users/jhamman/anaconda/bin/conda-skeleton 
user site dirs: 

CIO_TEST: <not set> 
CONDA_DEFAULT_ENV: <not set> 
CONDA_ENVS_PATH: <not set> 
DYLD_LIBRARY_PATH: <not set> 
PATH: /Users/jhamman/anaconda/bin:/opt/local/bin:/opt/local/sbin 
PYTHONHOME: <not set> 
PYTHONPATH: <not set> 

Antwort

2

Dies ist ein Fehler mit dem Conda Build zu sein scheint:

https://github.com/ContinuumIO/anaconda-issues/issues/899

One commentor (@stuarteberg) in der Frage angegeben :

Die neue neueste scipy Version (0.18.0) hat auch das gleiche Problem. Falls es irgendwie nützlich ist, wird das conda-forge-Paket für scipy nicht auf diese Weise unterbrochen.

@andykitchen festgestellt, dass scipy zu 0.17.0 Herabstufung das Problem behoben:

Yup kann bestätigen, ich auch dieses Problem hatte, das Update war für mich auch zu 0.17.0 herabzustufen

conda install --force scipy=0.17.0 
+0

Vielen Dank! Ich habe allerdings eine Frage, warum kann ich scipy vom ipython-Terminal importieren, aber nicht im Notebook? – jhamman

+0

Ich bin nicht sicher, aber meine Vermutung wäre, dass IPython eine andere Kopie der Bibliothek libgcc_s referenziert, also wenn scipy versucht, es zu importieren, lädt es die zwischengespeicherte Version anstelle der fest programmierten Version (was zu einem Fehler führt) . In Ihrem IPython-Terminal können Sie möglicherweise den Pfad der Bibliothek ausfindig machen, die verwendet wird, um festzustellen, ob sie unterschiedlich ist. –