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?
aktualisieren Sie numpy auf die neueste Version
pip install numpy --upgrade
Ü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.
Das hat für mich funktioniert:
Sudo pip install numpy --upgrade --ignore-installed
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
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
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!
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
Für diejenigen, die anaconda Python verwenden:
conda update anaconda
Der folgende Befehl hat für mich funktioniert:
conda install -c anaconda numpy
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
>>>
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.
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
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
Dieser Befehl hat mein Problem gelöst.
pip3 install --upgrade numpy
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.