Tôi có một tình huống rất giống với một tại ImportError: DLL load failed: %1 is not a valid Win32 application, nhưng câu trả lời không có tác dụng đối với tôi.ImportError: Tải DLL không thành công:% 1 không phải là ứng dụng Win32 hợp lệ. Nhưng của DLL là có
My mã Python nói:
import cv2
Nhưng dòng đó ném lỗi hiển thị trong tiêu đề của câu hỏi này.
Tôi đã cài đặt OpenCV trong C:\lib\opencv
trên máy 64 bit này. Tôi đang sử dụng Python 64 bit.
Biến PYTHONPATH của tôi: PYTHONPATH=C:\lib\opencv\build\python\2.7
. Thư mục này chứa cv2.pyd
và đó là tất cả.
Biến PATH của tôi: Path=%OPENCV_DIR%\bin;...
Thư mục này chứa 39 tệp DLL chẳng hạn như opencv_core246d.dll
.
OPENCV_DIR có giá trị này: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
Giải pháp tại ImportError: DLL load failed: %1 is not a valid Win32 application nói để thêm "đường dẫn nhị phân opencv mới (C:\opencv\build\bin\Release
) vào biến môi trường Windows PATH". Nhưng như được hiển thị ở trên, tôi đã có thư mục nhị phân OpenCV (C:\lib\opencv\build\x64\vc11\bin
) trong PATH của tôi. Và quá trình cài đặt OpenCV của tôi không có bất kỳ thư mục Release nào (ngoại trừ một thư mục rỗng trong build/java).
Bất kỳ ý tưởng nào về những gì đang xảy ra? Tôi có thể yêu cầu Python theo dõi quá trình tải không? Chính xác những gì DLL của nó là tìm kiếm?
Cảm ơn, Lars
EDIT:
Tôi chỉ nhận thấy rằng, theo http://www.dependencywalker.com/, các cv2.pyd
trong C:\lib\opencv\build\python\2.7
là 32-bit, trong khi máy và Python Tôi đang chạy là 64-bit . Có thể đó là vấn đề? Và nếu có, tôi có thể tìm phiên bản cv2.pyd 64 bit ở đâu?
nhấp chuột [ở đây] (http: // www .lfd.uci.edu/~ gohlke/pythonlibs/# opencv) và tìm opencv 64 bit –
@KillConsole: cảm ơn, tôi sẽ thử nó. Vì gói cài đặt mà tôi đã tải xuống có cả thư mục con x86 và x64, tôi cho rằng nó bao gồm mọi thứ cần có cho 64-bit. Rõ ràng là không. Hoan hô, đã sửa nó! Bây giờ chúng tôi đang vào "ImportError: numpy.core.multiarray không nhập được", vì vậy tôi sẽ thử cùng một trang web cho 64-bit numpy. Nếu bạn bình luận của bạn thành một câu trả lời, tôi sẽ upvote và chấp nhận nó. – LarsH
phiên bản Python nào bạn đã sử dụng? (không phải trong điều khoản của phiên bản bit bộ xử lý) –