【问题标题】:How to fix ImportError: cannot import name _wrapper using slycot如何修复 ImportError:无法使用 slycot 导入名称 _wrapper
【发布时间】:2016-12-23 00:00:04
【问题描述】:

我在 OS X 上的 anaconda 下使用

安装了 python 包slycot
conda install -c http://conda.binstar.org/cwrowley slycot

但是当我尝试使用它时

import slycot

我收到了这个错误

ImportError: dlopen(/Users/pheon/anaconda/lib/python2.7/site-packages/slycot/_wrapper.so, 2): Library not loaded: /usr/local/lib/gcc/4.9/libgfortran.3.dylib
  Referenced from: /Users/pheon/anaconda/lib/python2.7/site-packages/slycot/_wrapper.so
  Reason: image not found

我错过了我应该安装的东西吗?

我有 libgfortran.3.dylib 但它安装在下面

/usr/local/lib/gcc/5

我必须链接一些东西吗?

更新:

我创建了一个新的 conda 环境并在其中安装了 slycot。我也必须安装 gcc,所以链接可能有问题。

完成后,我仍然收到 ImportError。所以我尝试再次从源安装。这产生了长长的 fortran 输出日志,所以这次它一定做了一些不同的事情。

但是,我仍然收到 ImportError。

./lib/libgfortran.3.dylib安装在env下。

otool -L /Users/pheon/anaconda/envs/snowflakes/lib/python2.7/site-
packages/slycot/_wrapper.so

给予

/Users/pheon/anaconda/envs/snowflakes/lib/python2.7/site-packages/slycot/_wrapper.so:
    liblapack.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/./libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 955.0.0)
    /Users/acurtis/anaconda/envs/snowflakes/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    @rpath/./libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)

>>>import slycot

还是给

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "slycot/__init__.py", line 16, in <module>
    from .analysis import ab01nd,ab05md,ab05nd,ab07nd,ab08nd, ab09ad, \
  File "slycot/analysis.py", line 21, in <module>
    from . import _wrapper
ImportError: cannot import name _wrapper

这可能与那个“@rpath”有关。我以前没见过?

【问题讨论】:

  • conda安装过程中是否有输出? (conda 有 --verbose 选项吗?)
  • 没有看起来像警告或错误的东西。它安装了 lapack-3.5.0 和 slycot-0.2.0。
  • 但它会尝试安装轮子吗?
  • 请确认otool -L /Users/pheon/anaconda/lib/python2.7/site-packages/slycot/_wrapper.so 确实显示了不正确的 libgfortran.3.dylib 路径。
  • 该命令给出:/usr/local/lib/gcc/4.9/libgfortran.3.dylib(兼容版本 4.0.0,当前版本 4.0.0)这是不正确的路径。

标签: python anaconda


【解决方案1】:

我发现 slicot 使用 gcc 4.9 中的库。解决方案是安装 gcc 4.9。我用自制软件做到了这一点

brew install gcc49

现在一切正常。

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 2019-11-27
    • 2015-02-05
    • 2019-12-19
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多