ImportError: DLL-laden mislukt: %1 is geen geldige Win32-toepassing. Maar de DLL’s zijn er

Ik heb een situatie die erg lijkt op die op ImportError: DLL-laden mislukt: %1 is geen geldige Win32-toepassing, maar het antwoord werkt niet voor mij.

Mijn Python-code zegt:

import cv2

Maar die regel geeft de fout weer die wordt weergegeven in de titel van deze vraag.

Ik heb OpenCV geïnstalleerd in C:\lib\opencv op deze 64-bits machine. Ik gebruik 64-bits Python.

Mijn PYTHONPATH-variabele: PYTHONPATH=C:\lib\opencv\build\python\2.7. Deze map bevat cv2.pyd en dat is alles.

Mijn PATH-variabele: Path=%OPENCV_DIR%\bin;... Deze map bevat 39 DLL-bestanden zoals opencv_core246d.dll.

OPENCV_DIR heeft deze waarde: OPENCV_DIR=C:\lib\opencv\build\x64\vc11.

De oplossing op ImportError: DLL laden mislukt: %1 is geen geldige Win32-toepassing zegt om “het nieuwe opencv binaire pad (C:\opencv\build\bin\Release) toe te voegen aan de Windows PATH-omgevingsvariabele”. Maar zoals hierboven getoond, heb ik al de map OpenCV binaries (C:\lib\opencv\build\x64\vc11\bin) in mijn PATH. En mijn OpenCV-installatie heeft geen Release-mappen (behalve een lege onder build/java).

Enig idee wat er mis gaat? Kan ik Python vertellen het laadproces uitgebreid te volgen? Precies naar welke DLL’s is het op zoek?

Bedankt,
Lars

BEWERKEN:

Ik heb net gemerkt dat, volgens http://www.dependencywalker.com/, de cv2.pyd in C:\lib\opencv\build\python\2.7 is 32-bits, terwijl de machine en de Python die ik gebruik 64-bits zijn. Zou dat het probleem kunnen zijn? En zo ja, waar kan ik een 64-bits versie van cv2.pyd vinden?


Antwoord 1, autoriteit 100%

Onofficiële Windows-binaries voor Python-uitbreidingspakketten

je kunt hier alle python-bibliotheken vinden


Antwoord 2, autoriteit 52%

Controleer of de python-versie die u gebruikt ook 64 bit is. Zo niet, dan kan dat het probleem zijn. Je zou een 32-bits python-versie gebruiken en 64-bits binaire bestanden voor de OPENCV-bibliotheek hebben geïnstalleerd.


Antwoord 3, autoriteit 23%

Wauw, ik heb nog een ander geval gevonden voor dit probleem. Geen van bovenstaande werkte. Uiteindelijk gebruikte ik het vermogen van Python om te introspecteren wat er werd geladen. Voor python 2.7 betekent dit:

import imp
imp.find_module("cv2")

Dit leverde een totaal onverwacht “cv2.pyd”-bestand op in een Anaconda DLL-map die niet werd aangeraakt door meerdere pogingen om te verwijderen/installeren. Python was daar eerst aan het zoeken en vond mijn goede installatie niet. Ik verwijderde dat cv2.pyd-bestand en probeerde imp.find_module(“cv2”) opnieuw en python vond onmiddellijk het juiste bestand en cv2 begon te werken.

Dus als geen van de andere oplossingen voor u werkt, zorg er dan voor dat u python-introspectie gebruikt om te zien welk bestand python probeert te laden.


Antwoord 4, autoriteit 8%

In mijn geval heb ik 64-bits python en het was lxml die de verkeerde versie was – ik had ook de x64-versie daarvan moeten gebruiken. Ik heb dit opgelost door de 64-bits versie van lxml hier te downloaden:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-amd64-py2.7.exe

Dit was het eenvoudigste antwoord op een frustrerend probleem.


Antwoord 5, autoriteit 7%

Ik had net dit probleem, het blijkt dat het kwam omdat ik de x64-versie van het opencv-bestand gebruikte. Heb de x86 geprobeerd en het werkte.


Antwoord 6, autoriteit 4%

Ik had hetzelfde probleem. Dit is wat ik deed:

  1. Ik heb het pywin32 Wheel-bestand gedownload van hier en vervolgens

  2. Ik heb de module pywin32 verwijderd. Voer de volgende opdracht uit in de opdrachtprompt om de installatie ongedaan te maken.

    pip uninstall pywin32

  3. Vervolgens heb ik pywin32 opnieuw geïnstalleerd. Om het te installeren, opent u de opdrachtprompt in dezelfde map waar het pywin32-wielbestand zich bevindt. Voer vervolgens de volgende opdracht uit.

    pip install <Name of the wheel file with extension>
    Het wielbestand ziet er als volgt uit: piwin32-XXX-cpXX-none-win32.whl

Het lost het probleem voor mij op. Misschien vind je het ook leuk om het eens te proberen. Ik hoop dat het voor jou ook werkt.


Antwoord 7, autoriteit 2%

Als je build-systeem (CMake in mijn geval) het bestand kopieert van <name>.dll naar <name>.pyd, krijg je dit fout als het oorspronkelijke bestand niet echt een dll was. In mijn geval werd het bouwen van gedeelde bibliotheken uitgeschakeld, dus het onderliggende bestand was eigenlijk een *.lib.

Ik ontdekte deze fout door het bestand pyd te laden in DependencyWalker en te zoeken dat het niet geldig was.


Antwoord 8, autoriteit 2%

Ik heb het bestand cv2.pyd gekopieerd van de map /opencv/build/python/2.7/x86 in plaats van van de map /x64 naar C:/Python27/Lib/site-packeges. Ik heb de rest van de instructies gevolgd hier.

Toegevoegd door iemand anders, niet geverifieerd: ik kopieer ook bestand cv2.pyd naar map C:/Python27/Lib/site-packages/cv2. Het werkt.


Antwoord 9, autoriteit 2%

Numpy bijwerken.

pip install numpy --upgrade

Werk voor mij!!


Antwoord 10, autoriteit 2%

Deze werkte bij mij

pip install -- pywin32==227

Antwoord 11

Voor mij was het probleem dat ik verschillende versies van Python gebruikte in het dezelfde Eclipse-project. Mijn configuratie kwam niet overeen met de Projecteigenschappen en de Configuratie uitvoeren Python-versies.

In Project > Eigenschappen > PyDev, ik had de Interpreter ingesteld op Python2.7.11.

In Voer Configuraties uit > Tolk, ik gebruikte de standaard tolk. Het veranderen naar Python 2.7.11 loste het probleem op.


Antwoord 12

Ik had hetzelfde probleem toen ik een andere versie van 2.7.x van Python op mijn systeem de-installeerde en opnieuw installeerde met een 32-bits Windows Installer. Ik kreeg dezelfde fout op de meeste van mijn importverklaringen.
Ik heb de nieuw geïnstalleerde Python verwijderd en een 64-bits Windows-installatieprogramma gedownload en Python opnieuw geïnstalleerd en het werkte.
Ik hoop dat dit je helpt.


Antwoord 13

Dus ik had problemen met het installeren van vtk onder Windows (omdat ik python 3.7 gebruik, is er tot nu toe geen binair bestand beschikbaar, alleen voor oudere python-versies pip install vtk werkt niet)

Ik heb python in mijn cmd geschreven:

Python 3.7.3 on win32

Dus ik weet nu dat ik python 3.7.3 op een 32 bit heb draaien.

Vervolgens heb ik het juiste wiel gedownload op VTK-8.2.0-cp37-cp37m- win32.whl

Vervolgens heb ik dat wiel geïnstalleerd:

pip install VTK-8.2.0-cp37-cp37m-win32.whl

Toen heb ik het getest en het werkte:

python
import vtk

Antwoord 14

Ik ondervond hetzelfde probleem tijdens het schrijven van een code betreffende Speech_to_Text.

De oplossing was heel eenvoudig. Verwijder de vorige pywin32 met behulp van de pip-methode

pip uninstall pywin32

Het bovenstaande verwijdert de bestaande die standaard voor 32-bits computers is. En installeer het opnieuw met

pip install pywin32

Hiermee wordt degene geïnstalleerd voor de 64-bits computer die u gebruikt.


Antwoord 15

Eerst kopieerde ik cv2.pyd van /opencv/build/python/2.7/x86 naar C:/Python27/Lib/site-packeges. De fout was

“RuntimeError: module gecompileerd tegen API versie 9, maar deze versie van numpy is 7”

Vervolgens installeerde ik numpy-1.8.0-win32-superpack-python2.7.exe en opencv werkt prima.

>>> import cv2
>>> print cv2.__version__
2.4.13

Antwoord 16

Je kunt opencv installeren vanaf officieel of niet-officiële-sites.

Raadpleeg deze vraag en dit probleem als je gebruiken anaconda.


Antwoord 17

  1. Zorg ervoor dat je python 2.7.12 of een lagere versie hebt geïnstalleerd, anders krijg je deze fout zeker.
  2. Zorg ervoor dat de Oracle-client 64-bits is geïnstalleerd als het besturingssysteem 64-bits is.
  3. Zorg ervoor dat Microsoft Visual C++ Compiler voor Python 2.7 64 voor bit is voor 64 bit OS of 32 bit voor 32 bit.
    Opmerking: – ALS uw besturingssysteem 64-bits is, installeert u alle pakketten van 64-bits of als Os 32-bits is, installeert u een 32-bits pakket.

Antwoord 18

Het heeft een heel eenvoudige oplossing.
Na het installeren van opencv
plaats

cv2.pyd van C:\opencv\build\python\2.7\ **x64** naar C:\Python27\Lib\site-packages

plaats in plaats van cv2.pyd van C:\opencv\build\python\2.7\ **x86** naar C:\Python27\Lib\site-packages


Antwoord 19

Ik kreeg deze fout bij het importeren van MySQLdb.

Wat voor mij werkte, was om Python te verwijderen en vervolgens opnieuw te installeren.

Ik kreeg de fout na het installeren van npm (https://www.npmjs.com/get-npm ). Een ding dat het deed, was Python installeren, ook al had ik het al.


Antwoord 20

Dit heeft voor mij gewerkt. Ik heb verschillende methoden geprobeerd, maar dit was mijn beste oplossing.

Open de opdrachtprompt en typ het volgende;
pip install opencv-python.
(zorg ervoor dat je internet aanstaat).
probeer het daarna opnieuw te importeren.


Antwoord 21

Het kan ook zijn dat uw anaconda-versie 32 bit is terwijl het 64 bit zou moeten zijn.


Antwoord 22

Ik heb de oplossing gevonden, misschien kun je proberen het cmd-venster te gebruiken in plaats van het anaconda-promptvenster om je eerste scrapy-test te starten.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes