【问题标题】:Error importing numpy after upgrading with pip使用 pip 升级后导入 numpy 时出错
【发布时间】:2014-03-31 13:39:53
【问题描述】:

这个问题与这里的一个问题有关:Unable to import numpy

我跑了:sudo pip install --upgrade numpy

然后当我运行 python 并尝试导入 numpy 时,我得到了这个奇怪的错误!!!我要疯了!

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.py", line 153, in <module>
    from . import add_newdocs
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/__init__.py", line 18, in <module>
    from .polynomial import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/polynomial.py", line 19, in <module>
    from numpy.linalg import eigvals, lstsq, inv
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/__init__.py", line 50, in <module>
    from .linalg import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 29, in <module>
    from numpy.linalg import lapack_lite, _umath_linalg
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so, 2): Symbol not found: __gfortran_compare_string
  Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so
>>> 

编辑: 我也跑了这个:

$ pip show numpy
---
Name: numpy
Version: 1.8.0
Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requires: 

【问题讨论】:

  • 运行pip show numpy会得到什么?
  • @RobWatts 用 EDIT 更新了问题
  • 嗯... pip 显示了正确的版本。 numpy 目录中有version.py 吗?如果是这样,它说里面有什么版本?
  • 好吧,看起来 python 并没有尝试获取旧版本的 numpy。我的情况略有不同,但很高兴确认这不是问题。

标签: python macos numpy pip


【解决方案1】:

我的解决方法是通过 macports 手动安装 gcc:

sudo port install gcc48

... 安装 gfortran,但没有 numpy 似乎期望的别名(gfortran)。然后我们做一个符号链接:

sudo ln -s /opt/local/bin/gfortran-mp-4.8 /opt/local/bin/gfortran

在那之后,我通过 pip 卸载并重新安装了 numpy,它就像一个魅力。

这为我解决了昨晚小牛队的问题。根据我的阅读,gfortran 曾经是 OS X 命令行工具的一部分,但不是 Lion 左右。单独安装 gcc 可以“修复”该问题。

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 2016-11-25
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2014-10-19
    相关资源
    最近更新 更多