代码之家  ›  专栏  ›  技术社区  ›  jhamman

Conda/Python:导入错误-仅在jupyter笔记本中找不到图像

  •  4
  • jhamman  · 技术社区  · 9 年前

    我的导入失败 scipy.io 在一个 jupyter 笔记本令人困惑的是,我在iPython终端中没有得到相同或任何错误,但我在标准的Python端中。这让我想到,我的 朱庇特 会话使用的链接路径与我的其他会话不同,但我还没有弄清楚如何进行/调试/修复。

    我的问题:

    1. jupyter不应该在终端和笔记本会话中使用相同的库路径吗?
    2. 我已包括我的路径设置 conda info 在下面关于这是如何发生的/为什么会发生的,是否有任何事情向任何人提出?

    在IPython终端中

    $ 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]: 
    

    在标准Python解释器中

    $ 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
    

    在Jupyter笔记本中

    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
    

    最后一点,这是来自 conda信息 :

    $ 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>
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Gordon Bean    9 年前

    这似乎是conda构建中的一个bug:

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

    一位评论员(@stuarteberg)表示:

    最新的scipy版本(0.18.0)也存在同样的问题。如果它在某种程度上有用,那么scipy的conda forge包不会以这种方式被破坏。

    @andykitchen发现将scipy降级到0.17.0解决了这个问题:

    是的,可以确认我也有这个问题,对我来说,解决办法是也降级到0.17.0

    conda install --force scipy=0.17.0
    
    推荐文章