Code:
import numpy as np
import cv
Console:
>>> 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
>>>
Informations système: OS X El Capitan, Macbook Air, Intel Core i5 à 1,3 GHz, 8 Go, 1600 HMz DDR3
J'ai déjà essayé de mettre à jour numpy. Je devais ajouter cv.py au dossier python2.7 dans Spyder-Py2. Y at-il autre chose à ajouter?
mettre à jour numpy vers la dernière version
pip install numpy --upgrade
Vérifier le chemin
import numpy
print numpy.__path__
Pour moi, c’était /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy Alors je l’ai déplacé dans un endroit temporaire
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
et puis la prochaine fois que j'ai importé numpy, le chemin était /Library/Python/2.7/site-packages/numpy/ init . pyc et tout allait bien.
Cela a fonctionné pour moi:
Sudo pip install numpy --upgrade --ignore-installed
Vous utilisez probablement la configuration par défaut Mac (/ usr/bin/python), sur laquelle une version plus ancienne de numpy est installée dans les dossiers système. Le moyen le plus simple de faire fonctionner python avec opencv consiste à utiliser brew pour installer python et opencv dans/usr/local et exécuter le programme/usr/local/bin/python.
brew install python
brew tap homebrew/science
brew install opencv
Pour résoudre le problème, procédez comme suit:
Première désinstallation de numpy
Sudo pip uninstall numpy
Installez numpy avec l'option --no-cache-dir
Sudo pip install --no-cache-dir numpy
Et pour spécifier une version spécifique, par exemple. 1.14.2
Sudo pip install --no-cache-dir numpy==1.14.2
J'ai rencontré le même problème ce soir. Il s'est avéré que le problème était dû à l'installation de plusieurs paquets numpy. Une version plus ancienne a été installée dans /usr/lib/python2.7
et la version correcte a été installée dans /usr/local/lib/python2.7
.
De plus, j'avais PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages
. PYTHONPATH recherchait l'ancienne version de numpy avant la version correcte. Ainsi, lorsqu'il se trouvait dans l'interpréteur Python, il importerait l'ancienne version de numpy.
Une chose qui a aidé a été d'ouvrir une session python et d'exécuter le code suivant:
import numpy as np
print np.__version__
print np.__path__
Cela devrait vous dire exactement quelle version de Python utilise et où elle est installée.
Pour résoudre le problème, j'ai changé PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages
. Et j'ai également configuré un environnement virtuel Python en utilisant le Guide Hitchiker en Python , plus précisément la section intitulée "Niveau inférieur: virtualenv". Je sais que j'aurais dû créer un environnement virtuel au départ, mais j'étais fatigué et paresseux. Oh bien, leçon apprise!
(Mettre à jour)
Juste au cas où les documents sont déplacés à nouveau, voici les bits pertinents sur ...
Création d'un environnement virtuel Python
Installez virtualenv via pip:
$ install virtualenv
Testez l'installation:
$ virtualenv --version
Et éventuellement, la variable d’environnement VIRTUALENVWRAPPER_PYTHON
permet de modifier la version par défaut de python utilisée par les environnements virtuels, par exemple pour utiliser Python 3:
$ export VIRTUALENVWRAPPER_PYTHON=$(which python3)
Définissez éventuellement la variable d'environnement WORKON_HOME
pour modifier le répertoire par défaut dans lequel vos environnements virtuels Python sont créés, par exemple pour utiliser /opt/python_envs
:
$ export WORKON_HOME=/opt/python_envs
Créez un environnement virtuel pour un projet:
$ cd my_project_folder
$ virtualenv my_virtual_env_name
Activez l'environnement virtuel que vous venez de créer. En supposant que vous définissiez également WORKON_HOME=/opt/python_envs
:
$ source $WORKON_HOME/my_virtual_env_name/bin/activate
Installez les paquets Python requis par votre projet, en utilisant l’une des deux méthodes suivantes.
Méthode 1 - Installation à l'aide de pip
à partir de la ligne de commande:
$ pip install python_package_name1
$ pip install python_package_name2
Méthode 2 - Installation à l'aide d'un fichier requests.txt
:
$ echo "python_package_name1" >> requests.txt
$ echo "python_package_name2" >> requests.txt
$ pip install -r ./requests.txt
Facultativement, mais fortement recommandé, installez virtualenvwrapper
. Il contient des commandes utiles pour faciliter le travail avec les environnements Python virtuels:
$ pip install virtualenvwrapper
$ source /usr/local/bin/virtualenvwrapper.sh
Sous Windows, installez virtualenvwrapper
en utilisant:
$ pip install virtualenvwrapper-win
Utilisation de base de virtualenvwrapper Créer un nouvel environnement virtuel:
$ mkvirtualenv my_virtual_env_name
Répertoriez tous les environnements virtuels:
$ lsvirtualenv
Activer un environnement virtuel:
$ workon my_virtual_env_name
Supprimer un environnement virtuel (attention! C'est irréversible!):
$ rmvirtualenv my_virtual_env_name
J'espère que cette aide!
J'ai eu la même erreur en essayant de lancer spyder. "RuntimeError: module compilé avec la version 0xb de l'API, mais cette version de numpy est 0xa" . Cette erreur est apparue une fois que j'ai modifié la version numpy de ma machine par erreur (je pensais être dans un état réel). Si vous utilisez spyder installé avec conda, mon conseil est d'utiliser uniquement conda pour gérer les paquets.
Cela fonctionne pour moi:
conda install anaconda
(J'avais conda mais pas d'anaconda sur ma machine) Alors:
conda update numpy
Pour ceux qui utilisent Anaconda Python:
conda update anaconda
La commande ci-dessous a fonctionné pour moi:
conda install -c anaconda numpy
J'ai eu le même problème avec le module quaternion. Lors de la mise à jour de modules avec conda, la version de numpy n’est pas mise à jour jusqu’à la dernière. Si vous imposez une mise à jour à l'aide de la commande pip install pip --upgrade numpy + install quaternion par pip install --user numpy numpy-quaternion, le problème est résolu . Peut-être que le problème provient de la version numpy . Ici. le résultat de l'exécution:
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
>>>
Vous voudrez peut-être vérifier votre version de matplotlib.
D'une manière ou d'une autre, j'ai installé une version de développement de matplotlib qui était à l'origine du problème. Une rétrogradation vers une version stable a corrigé le problème.
On peut également essayer python -v -c 'import YOUR_PACKAGE' 2>&1 | less
pour voir où le problème s'est produit et si les lignes ci-dessus peuvent vous donner des indices.
Cela fonctionne pour moi:
Ma pip
ne fonctionnant pas après la mise à niveau, la première chose à faire est de la réparer avec
Sudo gedit /usr/bin/pip
Changer la ligne
from pip import main
à
from pip._internal import main
Ensuite,
Sudo pip install -U numpy
Vous voudrez peut-être aussi vérifier votre $PYTHONPATH
. J'avais changé le mien en ~/.bashrc
afin de faire fonctionner un autre paquet.
Pour vérifier votre chemin:
echo $PYTHONPATH
Pour changer votre chemin (j'utilise nano mais vous pouvez éditer une autre manière)
nano ~/.bashrc
Recherchez la ligne avec export PYTHONPATH
...
Après avoir apporté des modifications, n'oubliez pas de
source ~/.bashrc
Cette commande a résolu mon problème.
pip3 install --upgrade numpy
J'ai rencontré le même problème en raison d'incohérences dans la documentation ... Cette page indique que les exemples de la documentation fonctionnent mieux avec python 3.x: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials /py_setup/py_intro/py_intro.html#intro , alors que cette page d’installation contient des liens vers python 2.7 et les anciennes versions de numpy et matplotlib: https://opencv-python-tutroals.readthedocs.io/en/latest /py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html
Ma configuration était la suivante: j'avais déjà installé Python 3.6 et 3.5, mais comme la documentation OpenCv-python disait que cela fonctionnait mieux avec la version 2.7.x, j'ai également installé cette version. Après avoir installé numpy (dans le répertoire Python27, sans pip mais avec l'extracteur par défaut, puisque pip ne fait pas partie de l'installation par défaut de Python 2.7 comme dans la version 3.6), j'ai exécuté cette erreur RuntimeError: module compiled against API version a but this version of numpy is
. J'ai essayé de nombreuses versions différentes de numpy et opencv, mais en vain. Enfin, j'ai simplement supprimé numpy de python27 (il suffit de supprimer le dossier de site-packages ainsi que tous les autres fichiers nommés numpy) et d'installer les dernières versions de numpy, matplotlib et opencv dans la version Python3.6 à l'aide de pip no problème. Depuis, je suis ouvert à la course.
J'espère que cela fait gagner du temps à quelqu'un.