Quand j’ai installé OpenCV avec Homebrew (brew
), j’ai ce problème à chaque fois que j’exécute cette commande pour tester python -c "import cv2"
:
RuntimeError: module compiled against API version 9 but this version of numpy is 6
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import
J'ai essayé de mettre à jour NumPy, mais c'est déroutant:
>>> import numpy
>>> print numpy.__version__
1.6.1
Quand je lance brew pour mettre NumPy à niveau, j'ai ce problème:
brew install -u numpy
Warning: numpy-1.9.1 already installed
Quand je l'ai désinstallé:
Sudo pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in ./anaconda/lib/python2.7/site-packages
J'ai suivi cette question et supprimé Anaconda de mon mac.
pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages
Mais rien n'a changé. Comment lier la version de NumPy à OpenCV?
Parce que nous avons deux installations NumPy dans le système. L'un est installé par Homebrew et le second par pip. Donc, afin de résoudre le problème, nous devons en supprimer un et utiliser l’installation par défaut de NumPy par OpenCV.
Vérifiez le chemin,
import numpy
print numpy.__path__
et supprimez-le manuellement en utilisant rm
.
L'erreur que vous avez mentionnée se produit lorsque vous avez deux versions de NumPy sur votre système. Comme vous l'avez mentionné, la version de NumPy que vous avez importée n'est toujours pas mise à niveau puisque vous avez essayé de la mettre à niveau via pip (la mise à niveau de la version existante dans '/Library/Python/2.7/site-packages'
).
Cependant Python charge toujours les paquets depuis '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'
où résident les packages pré-installés.
Pour mettre à niveau cette version, vous devez utiliser easy_install
. L’autre solution au problème consiste à utiliser virtualenv
et à configurer un nouvel environnement avec toutes les conditions requises.
Quand vous avez déjà une ancienne version de NumPy, utilisez ceci:
pip install numpy --upgrade
Si cela ne fonctionne toujours pas, essayez:
pip install numpy --upgrade --ignore-installed
Pour votre information, lorsque vous utilisez ou importez TensorFlow, une erreur similaire peut survenir, telle que (causée par NumPy):
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import
Error importing tensorflow. Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.
J'ai suivi la solution d'Elmira et Drew, Sudo easy_install numpy
, et il travaillé!
Sudo easy_install numpy
Searching for numpy
Best match: numpy 1.11.3
Removing numpy 1.8.2 from easy-install.pth file
Adding numpy 1.11.3 to easy-install.pth file
Using /usr/local/lib/python2.7/dist-packages
Processing dependencies for numpy
Finished processing dependencies for numpy
Après cela, je pourrais utiliser TensorFlow sans erreur.
Parce que vous avez plusieurs versions de NumPy installées.
Essayez pip uninstall numpy
et pip list | grep numpy
plusieurs fois, jusqu'à ce que pip list | grep numpy
.
Ensuite pip install numpy
vous obtiendrez la dernière version de NumPy.
J'ai essayé de faire Sudo pip uninstall numpy
à la place, car rm
ne fonctionnait pas au début.
Espérons que cela aide.
Désinstallez puis réinstallez-le.
Si vous ne rencontrez aucune erreur de permission avec
pip install -U numpy
essayer:
pip install --user -U numpy
Cela fonctionne pour moi:
pip install numpy --upgrade
Tous les mêmes.
Sudo easy_install numpy
Mon traçage
Searching for numpy
Best match: numpy 1.13.0
Adding numpy 1.13.0 to easy-install.pth file
Using /Library/Python/2.7/site-packages
Processing dependencies for numpy
Après l'installation de pytorch, j'ai eu une erreur similaire quand j'ai utilisé:
import torch
Supprimer NumPy n'a pas aidé (j'ai renommé NumPy, alors je suis revenu après que cela ne fonctionne pas). Les commandes suivantes ont fonctionné pour moi:
Sudo pip install numpy --upgrade
Sudo easy_install numpy
Pour python 2
pip install numpy --upgrade
Vous auriez également besoin de mettre à jour vos tables pour la version mise à jour de numpy. oui,
pip install tables --upgrade
Pour python
pip3 install numpy --upgrade
De même, les tables pour python3: -
pip3 install tables --upgrade
Vous devez vérifier quelle python utilisez-vous. Pip pour python 2.7+ ou pip3 pour python = 3 +
Si vous êtes coincé avec une machine sur laquelle vous n'avez pas accès à la racine, il est préférable de traiter avec une installation personnalisée Python.
L'installation d'Anaconda a fonctionné à merveille:
Après l'installation,
[bash] $/xxx/devTools/python/anaconda/bin/pip list --format = columns | grep numpy
numpy 1.13.3 numpydoc 0.7.0