RuntimeError:针对API版本0xc编译的模块,但此版本的numpy为0xb

时间:2018-01-02 01:07:43

标签: python numpy tensorflow deep-learning

我正在尝试学习机器学习,但我无法解决以下错误。

[我的环境]

  • Mac High Sierra 10.13.2
  • Python3.4.5
  • Numpy1.13.3

[命令]

$ python3 -c "import jupyter, matplotlib, numpy, pandas, scipy, sklearn"

[错误]

RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
Traceback (most recent call last):
  File "/Users/uekyo/ml/env/lib/python3.4/site-packages/pandas/__init__.py", line 26, in <module>
    from pandas._libs import (hashtable as _hashtable,
  File "/Users/uekyo/ml/env/lib/python3.4/site-packages/pandas/_libs/__init__.py", line 4, in <module>
    from .tslib import iNaT, NaT, Timestamp, Timedelta, OutOfBoundsDatetime
  File "pandas/_libs/tslib.pyx", line 1, in init pandas._libs.tslib
ImportError: numpy.core.multiarray failed to import

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/uekyo/ml/env/lib/python3.4/site-packages/pandas/__init__.py", line 35, in <module>
    "the C extensions first.".format(module))
ImportError: C extension: numpy.core.multiarray failed to import not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.

[我尝试过的事情]

我明白numpy是错的。所以我尝试了下面的事情,但错误仍然存​​在。

〜1〜

sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy_old

〜2〜

pip3 uninstall numpy
pip3 install numpy  -I

感谢。

4 个答案:

答案 0 :(得分:7)

这似乎是由于pandas version higher than 0.21.0numpy version 1.13.3TensorFlow拉得不好打得好。 以下是我在最后修复它的方法:

# ipython
Python 2.7.6 (default, Nov 23 2017, 15:49:48)
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 tensorflow as tf
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb

In [2]: !pip install pandas==0.21.0
Collecting pandas==0.21.0
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request
has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server
to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve
 this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLC
ontext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to f
ail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest
/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl (24.3MB)
    100% |################################| 24.3MB 52kB/s
Requirement already satisfied: pytz>=2011k in /usr/local/lib/python2.7/dist-packages (from pandas==0.21.0)
Requirement already satisfied: numpy>=1.9.0 in /usr/local/lib/python2.7/dist-packages (from pandas==0.21.0)
Requirement already satisfied: python-dateutil in /usr/local/lib/python2.7/dist-packages (from pandas==0.21.0)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python2.7/dist-packages (from python-dateutil->pandas==0.21.0)
Installing collected packages: pandas
  Found existing installation: pandas 0.21.1
    Uninstalling pandas-0.21.1:
      Successfully uninstalled pandas-0.21.1
Successfully installed pandas-0.21.0

In [3]: del tf

In [4]: import tensorflow as tf

答案 1 :(得分:4)

最有可能是由于numpy版本太低;这个解决了我的问题:

pip3 install "numpy == 1.15.0" --user 

conda安装无法解决,因为当前它只有numpy版本1.13.1,但是可能是由于我选择的镜像站点不是最新的

答案 2 :(得分:1)

基于当前安装的tensorflow或sklearn软件包,可能存在一些不兼容。您应该尝试使用其他numpy版本。以我为例,顺便说一句,从1.18降级到1.15解决了这个问题。

pip install "numpy == 1.15.0"

答案 3 :(得分:0)

我有同样的问题。如果您使用的是anaconda,只需输入

即可

conda update tensorflow

这应解决问题。