ฉันมีสถานการณ์เหมือนกับเหตุการณ์ที่ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้องแต่คำตอบนั้นไม่ได้ผลสำหรับฉัน
รหัส Python ของฉันพูดว่า:
import cv2
แต่บรรทัดนั้นทำให้เกิดข้อผิดพลาดที่แสดงในชื่อของคำถามนี้
ฉันติดตั้ง OpenCV ในC:\lib\opencv
เครื่อง 64 บิตนี้แล้ว ฉันใช้ Python 64 บิต
ตัวแปร PYTHONPATH ของฉัน: PYTHONPATH=C:\lib\opencv\build\python\2.7
. โฟลเดอร์นี้มีcv2.pyd
และนั่นคือทั้งหมด
ตัวแปรเส้นทางของฉัน: Path=%OPENCV_DIR%\bin;...
โฟลเดอร์นี้มีไฟล์ DLL 39 ไฟล์เช่นopencv_core246d.dll
.
OPENCV_DIR มีค่านี้: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
วิธีแก้ปัญหาที่ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้องกล่าวว่าให้เพิ่ม "เส้นทางไบนารี opencv ใหม่ ( C:\opencv\build\bin\Release
) ไปยังตัวแปรสภาพแวดล้อม Windows PATH" แต่ตามที่แสดงด้านบนฉันมีโฟลเดอร์ไบนารี OpenCV ( C:\lib\opencv\build\x64\vc11\bin
) ในเส้นทางของฉันแล้ว และการติดตั้ง OpenCV ของฉันไม่มีโฟลเดอร์ Release ใด ๆ (ยกเว้นโฟลเดอร์ว่างภายใต้ build / java)
มีความคิดว่าเกิดอะไรขึ้น? ฉันสามารถบอก Python ให้ติดตามกระบวนการโหลดโดยละเอียดได้หรือไม่ มันกำลังมองหา DLL อะไรกันแน่?
ขอบคุณลาร์ส
แก้ไข:
ผมเพิ่งสังเกตเห็นว่าตามhttp://www.dependencywalker.com/ที่cv2.pyd
ในC:\lib\opencv\build\python\2.7
32 บิตในขณะที่เครื่องและงูหลามฉันทำงานเป็น 64 บิต นั่นอาจเป็นปัญหาหรือไม่? และถ้าเป็นเช่นนั้นฉันจะหา cv2.pyd เวอร์ชัน 64 บิตได้ที่ไหน
PYTHONPATH
เคยมีรายการที่การติดตั้งไลบรารี SimpleCV ทิ้งไว้ที่นั่น แม้ว่าฉันจะถอนการติดตั้ง SimpleCV ไปแล้ว แต่PYTHONPATH
ก็ไม่ได้รับการกู้คืนและชี้ไปที่ไดเรกทอรีบางรายการที่มี OpenCV เวอร์ชันที่ขัดแย้งกันทิ้งไว้โดยการติดตั้ง SimpleCV วิธีแก้ไข: ล้างไฟล์PYTHONPATH
.