コード:
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を追加する必要がありました。追加する必要があるものは他にありますか?
numpyを最新バージョンにアップグレードする
pip install numpy --upgrade
パスを確認してください
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でした、そしてすべては順調でした。
これは私のために働いた:
Sudo pip install numpy --upgrade --ignore-installed
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
問題を解決するには、次のようにします。
最初の不調和なアンインストール
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
私は今夜同じ問題に出くわした。それは私が複数の不格好なパッケージをインストールしていた問題であることがわかった。古いバージョンが/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
私はこれが助けを願っています!
クォータニオンモジュールでも同じ問題があります。 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
>>>
スパイダーを起動しようとしたときに同じエラーが発生しました。 "RuntimeError:モジュールはAPIバージョン0xbに対してコンパイルされましたが、このバージョンのnumpyは0xaです。"このエラーは私が誤って自分のマシンの厄介なバージョンを修正した後に現れました(私はvenvにいると思った)。あなたがcondaと一緒にインストールされたスパイダーを使っているならば、私のアドバイスはパッケージを管理するのにcondaだけを使うことです。
これは私のために働く:
conda install anaconda
(私のマシンにはcondaがありましたが、anacondaはありませんでした)。
conda update numpy
あなたはあなたのmatplotlibのバージョンをチェックしたいかもしれません。
どういうわけか私は問題を引き起こしたmatplotlibの開発版をインストールしました。安定版へのダウングレードで修正されました。
python -v -c 'import YOUR_PACKAGE' 2>&1 | less
を試して、問題が発生した場所を確認したり、エラーの上の行でヒントが得られる場合もあります。
これは私のために働く:
私のpip
はアップグレード後は動作しないので、最初にやるべきことはそれを使ってそれを修正することです。
Sudo gedit /usr/bin/pip
行を変える
from pip import main
に
from pip._internal import main
その後、
Sudo pip install -U numpy
あなたの$PYTHONPATH
もチェックしたいかもしれません。他のパッケージを動かすために~/.bashrc
のファイルを変更しました。
パスを確認するには
echo $PYTHONPATH
パスを変更するには(私はnanoを使用しますが、別の方法で編集することもできます)
nano ~/.bashrc
export PYTHONPATH
の行を探してください。
変更を加えたら、忘れないでください
source ~/.bashrc
このコマンドは私の問題を解決しました。
pip3 install --upgrade numpy
Anaconda Pythonを使っている人のために:
conda update anaconda
私はドキュメントの不一致のために同じ問題に直面しました。このページでは、ドキュメント内の例が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を実行しています。
これが誰かに時間を節約することを願っています。
下記のコマンドは私のために働きました:
conda install -c anaconda numpy