NumPy导入失败。

4
在Raspberry Pi 2上,我使用pip-review升级了所有软件包,但是numpy不再起作用了。我尝试通过pip和apt卸载和重新安装numpy,但都没有成功。如果尝试通过pip安装,它将无法安装Apt中的1.12.1版本numpy。虽然Pip可以正常安装1.16.4版本的numpy,但当我运行时却遇到了以下错误。我已经运行了sudo apt install libc6 libatlas-base-dev。如有任何帮助,则不胜感激。
Python 3.7.3 (default, May  8 2019, 18:07:21) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/numpy/core/__init__.py", line 40, in <module>
    from . import multiarray
  File "/usr/local/lib/python3.7/site-packages/numpy/core/multiarray.py", line 12, in <module>
    from . import overrides
  File "/usr/local/lib/python3.7/site-packages/numpy/core/overrides.py", line 6, in <module>
    from numpy.core._multiarray_umath import (
ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib/python3.7/site-packages/numpy/core/_multiarray_umath.cpython-37m-arm-linux-gnueabihf.so)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/usr/local/lib/python3.7/site-packages/numpy/core/__init__.py", line 71, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf`
  (removes all files not under version control) and rebuild numpy.
- If you are simply trying to use the numpy version that you have installed:
  your installation is broken - please reinstall numpy.
- If you have already reinstalled and that did not fix the problem, then:
  1. Check that you are using the Python you expect (you're using /usr/local/bin/python3),
     and that you have no directories in your PATH or PYTHONPATH that can
     interfere with the Python and numpy versions you're trying to use.
  2. If (1) looks fine, you can open a new issue at
     https://github.com/numpy/numpy/issues.  Please include details on:
     - how you installed Python
     - how you installed numpy
     - your operating system
     - whether or not you have multiple versions of Python installed
     - if you built from source, your compiler versions and ideally a build log

     Note: this error has many possible causes, so please don't comment on
     an existing issue about this - open a new one instead.

Original error was: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib/python3.7/site-packages/numpy/core/_multiarray_umath.cpython-37m-arm-linux-gnueabihf.so)

你从 ldd --versionls /lib/arm-linux-gnueabihf/ |grep libm.so 得到了什么? - Christoffer
@Christoffer ldd (Debian GLIBC 2.24-11+deb9u4) 2.24 和 libm.so.6 - azazelspeaks
看起来numpy是针对glibc 2.27编译的,而您正在运行2.24。您可以重新编译numpy以适应您的版本,或者升级glibc。但升级glibc可能会影响到您所有其他软件包,如此在这里所述: https://askubuntu.com/questions/645108/upgrading-glibc-to-a-version-at-least-2-17-or-higher-in-ubuntu-12-04-lts - Christoffer
我在我的RPi3上遇到了完全相同的问题,一直在苦苦挣扎。目前我还没有找到解决方案,我认为操作系统还没有更新以适配Python 3.7.3。与此同时,我正在使用Python 3.5.5。如果您找到了解决方案,请在这里发布。 - Joshua Yonathan
我安装了Raspbian Buster操作系统以及相应的NumPy软件包,看起来运行正常。 - azazelspeaks
2个回答

2

我遇到类似的问题,只有通过在全局选项中添加“-mfloat-abi=hard”并强制重新安装才解决了问题。更详细的解释可以参考这个链接


如果问题与glibc版本有关,这应该是真正的答案。在stretch上,我有ldd --version,它给出了ldd(Debian GLIBC 2.24-11+deb9u4)2.24,低于GLIBC_2.27。由于似乎没有办法在stretch中升级到2.27(并且可能会破坏其他东西),使用pip install numpy --global-option="-mfloat-abi=hard" --force-reinstall进行numpy安装似乎是唯一的方法。 - Rho Phi

0

使用Conda可以解决这个问题,但需要强制重新安装。

# versions >= 4.6:
conda install numpy --force-reinstall

# versions < 4.6:
conda install numpy --force


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接