导入失败 scipy.special "Symbol not found: ___addtf3"

Failed scipy.special import "Symbol not found: ___addtf3"

每当我尝试 运行 此代码时:

from scipy.special import legendre

我一直遇到以下错误。

ImportError: 

dlopen(/Users/william/miniconda/envs/myenv/lib/python3.4/site-packages/scipy/special/_ufuncs.so, 2): Symbol not found: ___addtf3
  Referenced from: /Users/william/miniconda/envs/prakenv/lib/python3.4/site-packages/scipy/special/_ufuncs.so
  Expected in: /usr/lib/libSystem.B.dylib

我已经尝试恢复到以前版本的 scipy 并使用 Python 2.7 conda 环境,但问题仍然存在。我以前用 scipy 从来没有遇到过这个问题。非常感谢!

我有一个临时修复方法(还原 scipy),但我更愿意确定问题的确切原因:

conda uninstall scipy
conda install scipy=0.15.0

这是在 Yosemite 运行 Python 3.4 miniconda 环境中。

conda v 3.15.0 显然有问题导致了这些症状。修复是在 2015 年 7 月 23 日发布 conda v 3.15.1,并让人们重新安装。

参见 conda issue #1467, Error in scipy 0.16 packaging in official conda channels on OSX 上的讨论。考虑到你提问的时间,就在几天后的 2015 年 7 月,这可能对你有影响。

我遇到了类似的问题,只是我使用 pip install -r requirements.txt 在 vi​​rtualenv 中安装 scipy,其中一个要求是 scipy==0.18.0。我终于通过删除我的 pip 缓存并重试解决了这个问题。

更具体地说,我是这样做的:

  1. 停用 virtualenv flask
  2. sudo rm -r flask/
  3. 仔细检查了我的 PATH 和 PYTHONPATH 环境变量,去掉了对其他项目和其他 Python 版本的引用
  4. 将我的 MacPorts Python 版本设置为 2.7,符合我项目的需要:Sudo port set python python27
  5. 删除我的 pip 缓存,rm -r ~/Library/Caches/pip/http/* ~/Library/Caches/pip/wheels/*
  6. 重新创建了 virtualenv:virtualenv flask
  7. 重新激活虚拟环境:source flask/bin/activate
  8. 执行了 make 操作,调用了 pip install -r requirements.txt

我想出了一个 shorthand 来检测问题:

% python -c 'import scipy.special'

当问题发生时,我收到错误响应:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/myuser/project/flask/lib/python2.7/site-packages/scipy/special/__init__.py", line 636, in <module>
    from ._ufuncs import *
ImportError: dlopen(/Users/myuser/project/flask/lib/python2.7/site-packages/scipy/special/_ufuncs.so, 2): Symbol not found: ___addtf3
  Referenced from: /Users/myuser/project/flask/lib/python2.7/site-packages/scipy/special/../.dylibs/libquadmath.0.dylib
  Expected in: /usr/lib/libSystem.B.dylib
 in /Users/myuser/project/flask/lib/python2.7/site-packages/scipy/special/../.dylibs/libquadmath.0.dylib

问题改正后,没有输出。

在没有scipy的环境中(例如在virtualenv之外)测试运行时,出现了预期的错误:

ImportError: No module named scipy.special