wake-up-neo.com

RuntimeError: Modul wurde mit API-Version a kompiliert, diese Version von numpy ist jedoch 9

Code:

import numpy as np
import cv

Konsole:

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

Systeminfo: OS X El Capitan, Macbook Air, 1,3 GHz Intel Core i5, 8 GB 1600 HMz DDR3

Ich habe bereits versucht, Numpy zu aktualisieren. Ich musste cv.py zum Ordner python2.7 in Spyder-Py2 hinzufügen. Gibt es noch etwas, das ich hinzufügen muss?

68
Isaiah Nields

aktualisieren Sie numpy auf die neueste Version

pip install numpy --upgrade
96
Joshua Owoyemi

Überprüfen Sie den Pfad

import numpy
print numpy.__path__

Für mich war dies /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy Also habe ich es an einen temporären Ort verschoben

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

und als ich das nächste Mal numpy importierte, war der Pfad /Library/Python/2.7/site-packages/numpy/ init . pyc und alles war gut.

16
JnBrymn

Das hat für mich funktioniert:

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

Sie führen wahrscheinlich den Mac-Standard (/ usr/bin/python) aus, auf dem eine ältere Version von numpy in den Systemordnern installiert ist. Der einfachste Weg, um Python mit opencv zum Laufen zu bringen, ist die Verwendung von brew, um Python und opencv in/usr/local zu installieren und/usr/local/bin/python auszuführen.

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

So lösen Sie das Problem:

Zuerst deinstalliere numpy

Sudo pip uninstall numpy

Installiere numpy mit --no-cache-dir Option

Sudo pip install --no-cache-dir numpy

Und um eine bestimmte Version anzugeben, z. 1.14.2

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

Ich bin heute Abend auf dieselbe Ausgabe gestoßen. Es stellte sich als ein Problem heraus, bei dem mehrere numpy-Pakete installiert waren. Eine ältere Version wurde in /usr/lib/python2.7 installiert und die korrekte Version wurde in /usr/local/lib/python2.7 installiert.

Zusätzlich hatte ich PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages. PYTHONPATH hat die ältere Version von Numpy vor der korrekten Version gefunden. Wenn Sie sich also innerhalb des Python-Interpreters befindet, wird die ältere Version von Numpy importiert.

Eine Sache, die geholfen hat, war das Öffnen einer Python-Sitzung und das Ausführen des folgenden Codes:

import numpy as np 
print np.__version__ 
print np.__path__

Das sollte Ihnen genau sagen, welche Version Python verwendet und wo es installiert ist. 

Um das Problem zu beheben, habe ich PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages geändert. Ich habe auch eine virtuelle Python-Umgebung mit dem Hitchiker's Guide zu Python eingerichtet, insbesondere mit dem Abschnitt "Lower level: virtualenv". Ich weiß, ich hätte eigentlich eine virtuelle Umgebung einrichten sollen, aber ich war müde und faul. Na ja, die Lektion gelernt!

(Update)

Nur für den Fall, dass die Dokumente erneut verschoben werden, sind hier die relevanten Bits auf ...

Erstellen einer virtuellen Python-Umgebung

Installieren Sie Virtualenv via Pip:

$ install virtualenv

Testen Sie die Installation:

$ virtualenv --version

Optional können Sie die Umgebungsvariable VIRTUALENVWRAPPER_PYTHON verwenden, um die von virtuellen Umgebungen verwendete Standardversion von Python zu ändern, beispielsweise zur Verwendung von Python 3:

$ export VIRTUALENVWRAPPER_PYTHON=$(which python3)

Legen Sie optional die Umgebungsvariable WORKON_HOME fest, um das Standardverzeichnis zu ändern, in dem Ihre virtuellen Python-Umgebungen erstellt werden, um beispielsweise /opt/python_envs zu verwenden:

$ export WORKON_HOME=/opt/python_envs

Erstellen Sie eine virtuelle Umgebung für ein Projekt:

$ cd my_project_folder
$ virtualenv my_virtual_env_name

Aktivieren Sie die gerade erstellte virtuelle Umgebung. Angenommen, Sie setzen auch WORKON_HOME=/opt/python_envs:

$ source $WORKON_HOME/my_virtual_env_name/bin/activate

Installieren Sie die für Ihr Projekt erforderlichen Python-Pakete mit einer der beiden folgenden Methoden. 

Methode 1 - Installation mit pip von der Befehlszeile aus:

$ pip install python_package_name1
$ pip install python_package_name2

Methode 2 - Installation mit einer requests.txt-Datei:

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

Optional, aber sehr empfehlenswert, installieren Sie virtualenvwrapper. Es enthält nützliche Befehle, um das Arbeiten mit virtuellen Python-Umgebungen zu vereinfachen:

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

Installieren Sie unter Windows virtualenvwrapper mit:

$ pip install virtualenvwrapper-win

Grundlegende Verwendung von virtualenvwrapper Erstellen Sie eine neue virtuelle Umgebung:

$ mkvirtualenv my_virtual_env_name

Alle virtuellen Umgebungen auflisten:

$ lsvirtualenv

Aktivieren Sie eine virtuelle Umgebung:

$ workon my_virtual_env_name

Löschen Sie eine virtuelle Umgebung (Achtung! Dies ist nicht umkehrbar!):

$ rmvirtualenv my_virtual_env_name

Ich hoffe diese Hilfe!

3
MikeyE

Ich hatte den gleichen Fehler, als ich versuchte, Spyder zu starten. "RuntimeError: Modul wurde mit der API-Version 0xb kompiliert, aber diese Version von Numpy ist 0xa" . Dieser Fehler trat auf, als ich die Numpy-Version meines Computers versehentlich geändert hatte (ich dachte, ich befand mich in einem venv). Wenn Sie einen mit Conda installierten Spyder verwenden, empfiehlt es sich, nur das Conda zur Paketverwaltung zu verwenden.

Das funktioniert für mich:

conda install anaconda

(Ich hatte Conda, aber keine Anakonda auf meiner Maschine) Dann:

conda update numpy
1
Luce Philibert

Für diejenigen, die anaconda Python verwenden:

conda update anaconda
1
YakovK

Der folgende Befehl hat für mich funktioniert:

conda install -c anaconda numpy
1

Ich habe das gleiche Problem mit dem Quaternion-Modul. Beim Aktualisieren von Modulen mit Conda wird die numpy-Version nicht auf den letzten Stand gebracht. Wenn das Update mit dem Pip-Befehl erzwungen wird, wird die Installation von pipup --upgrade numpy + installiert, und das Quaternion-Modul wird über pip install installiert das Ausführungsergebnis:

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

Vielleicht möchten Sie Ihre Matplotlib-Version überprüfen. 

Irgendwie habe ich eine dev-Version von matplotlib installiert, die das Problem verursacht hat. Ein Downgrade auf die stabile Version behebt dieses Problem. 

Sie können auch python -v -c 'import YOUR_PACKAGE' 2>&1 | less versuchen, um herauszufinden, wo das Problem aufgetreten ist und ob die Zeilen über dem Fehler einige Hinweise enthalten können.

0
hlin

Das funktioniert für mich:

Meine pip ist nach dem Upgrade nicht mehr funktionsfähig, daher muss ich sie zuerst beheben

Sudo gedit /usr/bin/pip

Ändern Sie die Zeile

from pip import main

zu

from pip._internal import main

Dann, 

 Sudo pip install -U numpy
0
Paul Chen

Möglicherweise möchten Sie auch Ihren $PYTHONPATH überprüfen. Ich hatte meine in ~/.bashrc geändert, um ein anderes Paket zum Laufen zu bringen.

So überprüfen Sie Ihren Weg:

    echo $PYTHONPATH

Um Ihren Pfad zu ändern (ich benutze Nano, aber Sie könnten einen anderen Weg wählen)

    nano ~/.bashrc

Suchen Sie die Zeile mit export PYTHONPATH ...

Vergessen Sie nicht nach den Änderungen

   source ~/.bashrc
0
gtcoder

Dieser Befehl hat mein Problem gelöst.

pip3 install --upgrade numpy 
0
PALLAMOLLA SAI

Das gleiche Problem hatte ich aufgrund von Inkonsistenzen bei der Dokumentation ... Diese Seite besagt, dass die Beispiele in den Dokumenten am besten mit Python 3.x funktionieren: https://opencv-python-tutroals.readthedocs.io/de/latest/py_tutorials /py_setup/py_intro/py_intro.html#intro , wobei diese Installationsseite Links zu Python 2.7 und älteren Versionen von numpy und matplotlib enthält: https://opencv-python-tutroals.readthedocs.io/de/latest /py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html

Mein Setup war so: Ich hatte bereits Python 3.6 und 3.5 installiert, aber da OpenCv-Python-Docs gesagt haben, dass es am besten mit 2.7.x funktioniert, habe ich auch diese Version installiert. Nachdem ich numpy installiert habe (im Python27-Verzeichnis, ohne pip aber mit dem Standard-Extraktor, da pip nicht Teil der Standardinstallation von python 2.7 ist, wie in 3.6), lief ich in diesem RuntimeError: module compiled against API version a but this version of numpy is-Fehler. Ich habe viele verschiedene Versionen von Numpy und OpenCV ausprobiert, aber ohne Erfolg. Zum Schluss habe ich einfach numpy aus python27 gelöscht (lösche einfach den Ordner in Site-Packages sowie alle anderen Dateien mit dem Namen numpy) und installiere die neuesten Versionen von numpy, matplotlib und opencv in der Python3.6-Version mit der Pip-Nr Problem. Seitdem opencv.

Ich hoffe, das erspart jemandem etwas Zeit.

0