web-dev-qa-db-ja.com

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 El Capitan、Macbook Air、1.3 GHz Intel Core i5、8 GB 1600 HMz DDR3

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

72
Isaiah Nields

numpyを最新バージョンにアップグレードする

pip install numpy --upgrade
100
Joshua Owoyemi

パスを確認してください

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をインポートした次のパスは/Library/Python/2.7/site-packages/numpy/init.pycでした、そしてすべては順調でした。

15
JnBrymn

これは私のために働いた:

Sudo pip install numpy --upgrade --ignore-installed
7
a20

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

brew install python
brew tap homebrew/science
brew install opencv
4
Pat Niemeyer

問題を解決するには、次のようにします。

最初の不調和なアンインストール

Sudo pip uninstall numpy

とnumpyをインストール - no-cache-dirオプション

Sudo pip install --no-cache-dir numpy

そして特定のバージョンを指定する。 1.14.2

Sudo pip install --no-cache-dir numpy==1.14.2
2
GauravLuthra

私は今夜​​同じ問題に出くわした。それは私が複数の不格好なパッケージをインストールしていた問題であることがわかった。古いバージョンが/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をインポートします。

1つの助けとなったのは、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を変更しました。そして Hitchiker's Guide to Python 、具体的には "Lower level:virtualenv"というタイトルのセクションを使って仮想Python環境もセットアップします。最初は仮想環境をセットアップする必要があることはわかっていますが、私は疲れていて怠け者でした。まあ、レッスンは学んだ!

(更新)

念のため、ドキュメントが再び移動された場合は、以下の関連ビットを参照してください。

Python仮想環境の作成

Pipでvirtualenvをインストールしてください。

$ install virtualenv

インストールをテストします。

$ virtualenv --version

必要に応じて、環境変数VIRTUALENVWRAPPER_PYTHONをetにして、仮想環境で使用されるpythonのデフォルトバージョンを変更します。たとえば、Python 3を使用する場合などです。

$ export VIRTUALENVWRAPPER_PYTHON=$(which python3)

オプションで、環境変数WORKON_HOMEを設定して、Python仮想環境が作成されるデフォルトのディレクトリを変更します。たとえば、/opt/python_envsを使用するには、次のようにします。

$ export WORKON_HOME=/opt/python_envs

プロジェクト用の仮想環境を作成します。

$ cd my_project_folder
$ virtualenv my_virtual_env_name

作成したばかりの仮想環境をアクティブにします。 WORKON_HOME=/opt/python_envsも設定したとします。

$ source $WORKON_HOME/my_virtual_env_name/bin/activate

次の2つの方法のいずれかを使用して、プロジェクトに必要なPythonパッケージをインストールします。

方法1 - コマンドラインからpipを使用してインストールします。

$ pip install python_package_name1
$ pip install python_package_name2

方法2 - requests.txtファイルを使用してインストールする

$ echo "python_package_name1" >> requests.txt
$ echo "python_package_name2" >> requests.txt
$ pip install -r ./requests.txt

必要に応じて、ただし強くお勧めします、virtualenvwrapperをインストールします。仮想Python環境での作業を容易にするための便利なコマンドが含まれています。

$ pip install virtualenvwrapper
$ source /usr/local/bin/virtualenvwrapper.sh

Windowsでは、以下を使用してvirtualenvwrapperをインストールします。

$ pip install virtualenvwrapper-win

virtualenvwrapperの基本的な使い方新しい仮想環境を作ります。

$ mkvirtualenv my_virtual_env_name

すべての仮想環境をリストします。

$ lsvirtualenv

仮想環境を活動化します。

$ workon my_virtual_env_name

仮想環境を削除します(注意!これは元に戻せません)。

$ rmvirtualenv my_virtual_env_name

私はこれが助けを願っています!

2
MikeyE

クォータニオンモジュールでも同じ問題があります。 condaを使ってモジュールを更新するとき、派手なバージョンは最後のものに更新されていません。 pip install --user numpy numpy-quaternionでpipコマンドpip install --upgrade numpy + install quaternionモジュールを使用して更新を強制する場合は、問題は修正されています。問題がでこぼこのバージョンから来ているのかもしれません。実行結果は次のとおりです。

Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:34:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy as np
>>> print np.__version__
1.14.3
>>>

(base) C:\Users\jc>pip install --user numpy numpy-quaternion
Requirement already satisfied: numpy in d:\programdata\anaconda2\lib\site-packages (1.14.3)
Collecting numpy-quaternion
  Downloading https://files.pythonhosted.org/packages/3e/73/5720d1d0a95bc2d4af2f7326280172bd255db2e8e56f6fbe81933aa00006/numpy_quaternion-2018.5.10.13.50.12-cp27-cp27m-win_AMD64.whl (49kB)
    100% |################################| 51kB 581kB/s
Installing collected packages: numpy-quaternion
Successfully installed numpy-quaternion-2018.5.10.13.50.12

(base) C:\Users\jc>python
Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:34:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy as np
>>> import quaternion
>>> 
1
user9783973

スパイダーを起動しようとしたときに同じエラーが発生しました。 "RuntimeError:モジュールはAPIバージョン0xbに対してコンパイルされましたが、このバージョンのnumpyは0xaです。"このエラーは私が誤って自分のマシンの厄介なバージョンを修正した後に現れました(私はvenvにいると思った)。あなたがcondaと一緒にインストールされたスパイダーを使っているならば、私のアドバイスはパッケージを管理するのにcondaだけを使うことです。

これは私のために働く:

conda install anaconda

(私のマシンにはcondaがありましたが、anacondaはありませんでした)。

conda update numpy
0
Luce Philibert

あなたはあなたのmatplotlibのバージョンをチェックしたいかもしれません。

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

python -v -c 'import YOUR_PACKAGE' 2>&1 | lessを試して、問題が発生した場所を確認したり、エラーの上の行でヒントが得られる場合もあります。

0
hlin

これは私のために働く:

私のpipはアップグレード後は動作しないので、最初にやるべきことはそれを使ってそれを修正することです。

Sudo gedit /usr/bin/pip

行を変える

from pip import main

from pip._internal import main

その後、

 Sudo pip install -U numpy
0
Paul Chen

あなたの$PYTHONPATHもチェックしたいかもしれません。他のパッケージを動かすために~/.bashrcのファイルを変更しました。

パスを確認するには

    echo $PYTHONPATH

パスを変更するには(私はnanoを使用しますが、別の方法で編集することもできます)

    nano ~/.bashrc

export PYTHONPATHの行を探してください。

変更を加えたら、忘れないでください

   source ~/.bashrc
0
gtcoder

このコマンドは私の問題を解決しました。

pip3 install --upgrade numpy 
0
PALLAMOLLA SAI

Anaconda Pythonを使っている人のために:

conda update anaconda
0
YakovK

私はドキュメントの不一致のために同じ問題に直面しました。このページでは、ドキュメント内の例がpython 3.xで最もうまく機能すると説明しています。 https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_intro/py_intro.html#intro 、このインストールページにはpython 2.7およびそれ以前のバージョンのnumpyとmatplotlibへのリンクがあります。 https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows .html

私の設定はそのようなものでした。私はすでにPython 3.6と3.5をインストールしていましたが、OpenCv-pythonのドキュメントが2.7.xで最もうまくいくと言っていたので、私もそのバージョンをインストールしました。 numpyをインストールした後(pipは3.6のようにデフォルトのpython 2.7インストールの一部ではないため、pipなしで、デフォルトの抽出プログラムを使用してPython27ディレクトリに)、私はこのRuntimeError: module compiled against API version a but this version of numpy isエラーを実行しました。私はnumpyとopencvの両方の多くの異なるバージョンを試しましたが、役に立ちませんでした。最後に、私は単にpython27からnumpyを削除し(site-packages内のフォルダーと他の残りのnumpy名前のファイルを削除する)、pip noを使用して最新バージョンのnumpy、matplotlib、およびopencvをPython3.6バージョンにインストールしました。問題。それ以来ずっとopencvを実行しています。

これが誰かに時間を節約することを願っています。

0

下記のコマンドは私のために働きました:

conda install -c anaconda numpy
0