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. Muss ich noch etwas hinzufügen?
python
python-2.7
opencv
numpy
Jesaja gibt nach
quelle
quelle
Requirement already up-to-date: numpy in /home/ubuntu/miniconda/lib/python3.6/site-packages
import torch
Ü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 dann, wenn ich das nächste Mal numpy importierte, war der Pfad /Library/Python/2.7/site-packages/numpy/ init .pyc und alles war gut.
quelle
pip install numpy -I
(das Argument von Capital I besagt, dass die Installation installiert werden soll, während die aktuelle Installation ignoriert wird, die verschoben wurde).Das hat bei mir funktioniert:
quelle
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, besteht darin, mit Brew sowohl Python als auch opencv in / usr / local zu installieren und / usr / local / bin / python auszuführen.
quelle
Gehen Sie wie folgt vor, um das Problem zu lösen:
Deinstallieren Sie zuerst numpy
Installieren Sie numpy mit der Option --no-cache-dir
sudo pip install --no-cache-dir numpy
Und um eine bestimmte Version anzugeben, z. B. 1.14.2
sudo pip install --no-cache-dir numpy==1.14.2
quelle
Ich bin heute Abend auf dasselbe Problem gestoßen. Es stellte sich als Problem heraus, bei dem mehrere numpy-Pakete installiert waren. Eine ältere Version wurde installiert
/usr/lib/python2.7
und die richtige Version wurde installiert/usr/local/lib/python2.7
.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 richtigen Version gefunden. Wenn es sich also im Python-Interpreter 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 geändert
PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages
. Außerdem habe ich mithilfe des Hitchiker's Guide to Python eine virtuelle Python-Umgebung eingerichtet , insbesondere im Abschnitt "Untere Ebene: virtualenv". Ich weiß, ich hätte zuerst eine virtuelle Umgebung einrichten sollen, aber ich war müde und faul. Na ja, Lektion gelernt!(Aktualisieren)
Nur für den Fall, dass die Dokumente erneut verschoben werden, finden Sie hier die relevanten Informationen zu ...
Erstellen einer virtuellen Python-Umgebung
Installieren Sie virtualenv über pip:
Testen Sie die Installation:
Optional können Sie die Umgebungsvariable
VIRTUALENVWRAPPER_PYTHON
und die Standardversion von Python ändern, die von virtuellen Umgebungen verwendet wird, z. B. um Python 3 zu verwenden:Legen Sie optional die Umgebungsvariable fest
WORKON_HOME
, um das Standardverzeichnis zu ändern, in dem Ihre virtuellen Python-Umgebungen erstellt werden, z. B. um Folgendes zu verwenden/opt/python_envs
:Erstellen Sie eine virtuelle Umgebung für ein Projekt:
Aktivieren Sie die soeben erstellte virtuelle Umgebung. Angenommen, Sie setzen auch
WORKON_HOME=/opt/python_envs
:$ source $WORKON_HOME/my_virtual_env_name/bin/activate
Installieren Sie alle für Ihr Projekt erforderlichen Python-Pakete mit einer der beiden folgenden Methoden.
Methode 1 - Installation über die
pip
Befehlszeile: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 zu empfehlen, installieren
virtualenvwrapper
. Es enthält nützliche Befehle, um die Arbeit mit virtuellen Python-Umgebungen zu vereinfachen:$ pip install virtualenvwrapper $ source /usr/local/bin/virtualenvwrapper.sh
Installieren Sie
virtualenvwrapper
unter Windows Folgendes :Grundlegende Verwendung von virtualenvwrapper Erstellen Sie eine neue virtuelle Umgebung:
Alle virtuellen Umgebungen auflisten:
Aktivieren Sie eine virtuelle Umgebung:
Löschen Sie eine virtuelle Umgebung (Vorsicht! Dies ist irreversibel!):
Ich hoffe diese Hilfe!
quelle
Ich habe das gleiche Problem mit dem Quaternion-Modul. Beim Aktualisieren von Modulen mit conda wird die numpy-Version nicht auf die letzte aktualisiert. Wenn das Update mit dem Pip-Befehl pip install --upgrade numpy + install quaternion module durch pip install --user numpy numpy-quaternion erzwungen wird, ist das Problem behoben. Möglicherweise kommt das Problem von der Numpy-Version. Hier 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 >>>
quelle
Für diejenigen, die Anaconda Python verwenden:
quelle
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 eine stabile Version hat das Problem behoben.
Man kann auch versuchen
python -v -c 'import YOUR_PACKAGE' 2>&1 | less
zu sehen, wo das Problem aufgetreten ist und ob die obigen Zeilen Fehler Ihnen einige Hinweise geben können.quelle
Vielleicht möchten Sie auch Ihre überprüfen
$PYTHONPATH
. Ich hatte meine geändert~/.bashrc
, um ein anderes Paket zum Laufen zu bringen.So überprüfen Sie Ihren Pfad:
Um deinen Pfad zu ändern (ich benutze Nano, aber du könntest es auch anders bearbeiten)
Suchen Sie nach der Zeile mit
export PYTHONPATH
...Vergessen Sie nicht, Änderungen vorzunehmen
quelle
Ich hatte den gleichen Fehler beim Versuch, Spyder zu starten. "RuntimeError: Modul kompiliert gegen API-Version 0xb, aber diese Version von numpy ist 0xa". Dieser Fehler trat auf, als ich versehentlich die numpy-Version meines Computers geändert habe (ich dachte, ich wäre in einem Venv). Wenn Sie Spyder verwenden, auf dem conda installiert ist, empfehle ich, conda nur zum Verwalten von Paketen zu verwenden.
Das funktioniert bei mir:
(Ich hatte Conda, aber keine Anakonda auf meiner Maschine) Dann:
quelle
Ich hatte das gleiche Problem aufgrund von Inkonsistenzen in der Dokumentation. Auf dieser Seite heißt es, dass die Beispiele in den Dokumenten am besten mit Python 3.x funktionieren: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_intro/py_intro.html#intro , während diese Installationsseite enthält Links zu Python 2.7 und älteren Versionen von numpy und matplotlib: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html
Mein Setup war wie folgt: Ich hatte bereits Python 3.6 und 3.5 installiert, aber da OpenCv-Python-Dokumente sagten, dass es mit 2.7.x am besten funktioniert, habe ich auch diese Version installiert. Nachdem ich numpy installiert hatte (im Python27-Verzeichnis, ohne pip, aber mit dem Standardextraktor, da pip nicht wie in 3.6 Teil der Standardinstallation von Python 2.7 ist), wurde dieser
RuntimeError: module compiled against API version a but this version of numpy is
Fehler ausgeführt. Ich habe viele verschiedene Versionen von numpy und opencv ausprobiert, aber ohne Erfolg. Zuletzt habe ich einfach numpy aus python27 gelöscht (löschen Sie einfach den Ordner in Site-Paketen sowie alle anderen verbleibenden numpy-benannten Dateien) und die neuesten Versionen von numpy, matplotlib und opencv in der Python3.6-Version mit pip no installiert Problem. Läuft seitdem opencv.Hoffe das spart jemandem etwas Zeit.
quelle
Der folgende Befehl hat bei mir funktioniert:
quelle
Das funktioniert bei mir:
Meines
pip
funktioniert nach dem Upgrade nicht, also muss ich es zuerst reparierensudo gedit /usr/bin/pip
Ändern Sie die Zeile
from pip import main
zu
from pip._internal import main
Dann,
quelle
Dieser Befehl hat mein Problem gelöst.
quelle