2013-01-31 132 views
23

我有這個問題,我嘗試在python上導入cv2並獲取以下錯誤消息。ImportError:DLL加載失敗:%1不是有效的Win32應用程序

>>> import cv2 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

我不知道有這個很多職位在那裏建議,包的位數是從Python包不同。

但是,我運行的所有東西都是64位。我在win7 64位,我有winpython 2.7.3.3,64位分佈,我編譯opencv 64位,提供指令here,並將cv2.pyd DLL放在Python的Lib/site-packages文件夾中。

不幸的是,使用32位版本的python的建議不再適用於我,因爲我必須處理numpy數組對32位太大。

謝謝!

------ UPDATE

唯一缺少的是對新的OpenCV的二進制文件的路徑(C:\ OpenCV的\建設\ BIN \發佈)添加到Windows PATH環境變量,重啓蟒蛇。

一切似乎現在工作正常!

回答

20

的導入錯誤消息的32位版本是有點誤導,因爲的參考Win32的,而這個問題只是OpenCV的DLL文件都沒有發現。

此問題已通過將路徑opencv二進制文件添加到Windows PATH環境變量(例如,在我的計算機上此路徑爲:C:\ opencv \ build \ bin \ Release)解決。

+6

採取什麼措施來做到這一點? – Exzile

+0

我沒有得到的是,爲什麼錯誤消息沒有聲明無法加載的DLL? %1似乎只是DLL的名稱的佔位符。 – antred

+0

好的。因此,如果您在64位計算機上修復該錯誤,則必須從x64文件夾複製cv2.pyd。 @antred它是一個佔位符。它通常被替換爲DLL,但不起作用,因爲32位無法在64位機器上加載。 –

4

你可以嘗試安裝OpenCV的

+1

請注意,這個問題已經解決,如問題的更新部分所述。 – Francis

+0

對不起,我的壞:) –

+3

@Francis一旦你找到了解決方案,請始終添加它作爲答案,而不是將其添加到您的問題。 – Tshepang

2

或者你必須重建win 64bit的cv2模塊。

0

當我有這個錯誤,它在我的電腦崩潰並重新啓動後就消失了。嘗試關閉並重新打開IDE,如果不起作用,請嘗試重新啓動計算機。當我遇到這個錯誤時,我剛纔安裝了這些庫,而不重新啓動pycharm。

從來沒有關閉PyCharm首先測試,因爲我的爆炸​​電腦不斷隨機崩潰......在那個工作,但它至少解決了這個問題..小勝利.. :)。

1

所有你需要做的是從x86文件夾中複製文件cv2.pyd(C:\ OpenCV的\建設\ python的\ 2.7 \ 86 \爲例)C:\ Python27 \ LIB \定點包\,而不是來自x64文件夾。

希望對你有所幫助。

相關問題