web-dev-qa-db-fra.com

RuntimeError: module compilé avec la version de l'API mais numpy est à 9

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?

68
Isaiah Nields

mettre à jour numpy vers la dernière version

pip install numpy --upgrade
96
Joshua Owoyemi

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.

16
JnBrymn

Cela a fonctionné pour moi:

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

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
5
Pat Niemeyer

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
3
GauravLuthra

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!

3
MikeyE

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
1
Luce Philibert

Pour ceux qui utilisent Anaconda Python:

conda update anaconda
1
YakovK

La commande ci-dessous a fonctionné pour moi:

conda install -c anaconda numpy
1
Haneesha Thanati

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
>>> 
0
user9783973

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.

0
hlin

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
0
Paul Chen

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
0
gtcoder

Cette commande a résolu mon problème.

pip3 install --upgrade numpy 
0
PALLAMOLLA SAI

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.

0