2015-11-22 9 views
47

コード:はRuntimeError:モジュールAPIのバージョンAに対してコンパイルが、numpyのこのバージョンは9

import numpy as np 
import cv 

コンソール:

>>> runfile('/Users/isaiahnields/.spyder2/temp.py', wdir='/Users/isaiahnields/.spyder2') 
RuntimeError: module compiled against API version a but this version of numpy is 9 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile 
execfile(filename, namespace) 
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile 
builtins.execfile(filename, *where) 
File "/Users/isaiahnields/.spyder2/temp.py", line 9, in <module> 
import cv 
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/cv.py", line 1, in <module> 
from cv2.cv import * 
ImportError: numpy.core.multiarray failed to import 
>>> 

システム情報:OS Xエルキャピタン、Macbook Airは、1.3 GHzのIntelコアi5,8 GB 1600 HMz DDR3

私はすでにnumpyの更新を試みています。 Spyder-Py2のpython2.7フォルダにcv.pyを追加する必要がありました。追加する必要があるものは何ですか?

答えて

6

システムフォルダに古いバージョンのnumpyがインストールされているMacのデフォルト(/ usr/bin/python)を実行している可能性があります。 opencvで動作するPythonを入手する最も簡単な方法は、brewを使ってpythonとopencvの両方を/ usr/localにインストールし、/ usr/local/bin/pythonを実行することです。私にとって

brew install python 
brew tap homebrew/science 
brew install opencv 
+1

Becareful!複数のバージョンのPythonをインストールすることはお勧めできません。あなたはこの男のように終わるかもしれません:http://stackoverflow.com/questions/14117945/too-many-different-python-versions-on-my-system-and-causing-problems – Jakobovski

15

パスを確認

import numpy 
print numpy.__path__ 

私は一時的にそれを移動するので、これは/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpyました

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 

を配置し、その後、私はnumpyのパスをインポートし、次回はのinit .pycファイルとすべてが順調だった/Library/Python/2.7/site-packages/numpy/ました。アナコンダのパイソンを使用してそれらのために

pip install numpy --upgrade 
+0

私のためにも働いています。 –

+0

作業は終了しましたが、 'pip install numpy -I'(大文字のi引数は現在インストールされているインストールを無視してインストールすると言っています)と再インストールする必要がありました。 –

56

アップグレードnumpyの:

conda update anaconda 
+1

これは問題を解決しますが、なぜですか?この問題は、numpyが2つインストールされているために発生します。どのようにアップグレードがこの問題を解決するのですか? – MAZDAK

+0

これは私のために修正されていません: '要件は既に​​最新です:numpy in/home/ubuntu/miniconda/lib/python3.6/site-packages' –

+0

デフォルトのpythonを使ってトーチをインポートすると、これは古いバージョンのnumpyを持っています。 –

1

最新バージョンへ

3

は、私は同じ問題に今夜を走りました。複数のパッケージがインストールされていると問題が発生していました。古いバージョンが/usr/lib/python2.7にインストールされ、正しいバージョンが/usr/local/lib/python2.7にインストールされました。

さらに、私はPYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packagesでした。 PYTHONPATHは正しいバージョンの前に古いバージョンのnumpyを見つけていたので、Pythonインタプリタの内部で古いバージョンのnumpyをインポートします。助け

ことの一つは、Pythonのセッション次のコードを実行して開いた:

import numpy as np 
print np.__version__ 
print np.__path__ 

Pythonが使用されているバージョンを正確にあなたを伝える必要があり、それがどこにインストールされています。

問題を修正するために、私はPYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packagesを変更しました。また、docs hereを使って仮想Python環境をセットアップしました。私は最初に仮想環境をセットアップする必要があることを知っていますが、疲れて怠け者でした。ああ、レッスンは学んだ!

このヘルプが欲しいです!

0

matplotlibのバージョンを確認したい場合があります。

どういうわけか私は問題を引き起こしたmatplotlibの開発版をインストールしました。安定版へのダウングレードにより修正されました。

また、python -v -c 'import YOUR_PACKAGE' 2>&1 | lessを試して問題がどこで発生したのか、そして上記のエラーがあなたにいくつかのヒントを与えるかどうかを調べることができます。

0

$PYTHONPATHをご確認ください。別のパッケージを稼働させるために、~/.bashrcの私を変更しました。

echo $PYTHONPATH 

を...(私はnanoを使用しますが、あなたは別の方法を編集できます)

export PYTHONPATHとラインの

nano ~/.bashrc 

ルックをあなたのパスを変更するには:あなたのパスを確認するには

変更後、忘れないでください

source ~/.bashrc 
2

これが私の仕事:

sudo pip install numpy --upgrade --ignore-installed 
0

をスパイダーを起動しようとしたとき、私は同じエラーが発生しました。 "RuntimeError:APIバージョン0xbに対してコンパイルされたモジュールですが、このバージョンのnumpyは0xaです"。 私のマシンのnumpyバージョンを間違って変更した後、私はこのエラーが発生しました(私はvenv内にいると思いました)。あなたがコンドーマと一緒にインストールされたスパイダーを使用している場合、私の助言はコンドミニアムを使ってパッケージを管理することです。

これが私の作品:

conda install anaconda 

その後、 (私はcondaが、私のマシン上でノーアナコンダを持っていた):

conda update numpy 
関連する問題