2014-03-06 70 views
9

最近,我已經安裝了Python(X,Y)包(2.7.6.0),現在當我跑我的Python代碼,它顯示了一個錯誤的當前版本:ImportError:DLL加載失敗:無法找到指定的過程。 Python的

Traceback (most recent call last): 
File "D:\Projects\comparison\Lagebestimmung\main.py", line 11, in <module> 
import cv2 
ImportError: DLL load failed: The specified procedure could not be found. 

我選擇正確的OpenCV模塊在安裝過程中。

此外,我在我的計算機中使用了較舊版本的Python(x,y),在安裝新版本之前我已將其卸載。在那個版本中,沒有這樣的問題。

+0

複製''cv2.pyd成'站點packages'目錄? –

+0

@PriyankPatel,嗨,不,我沒有。但你能解釋我是什麼嗎?因爲我還記得我安裝Python(x,y)的舊版本(我已經卸載)的時間。我不需要配置或複製'cv2.pyd'到'site-packages'中。謝謝。 – Sanchit

回答

1

試試這個: 安裝opencv for windows。在這裏下載:

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.1/OpenCV-2.4.1.exe/download 

然後

Copy cv2.pyd from C:\opencv\build\python\x86\2.7\ and paste it in the folder python site-packages folder . restart your IDE. 

確保已安裝numpy的。如果沒有,從這裏得到它..

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 
+0

嗨,再次感謝您的幫助。但是,正如我告訴你的,當你安裝Python(x,y)時,它會詢問你想要安裝的模塊/包/組件。在那裏你可以選擇Opencv。我想沒有必要再安裝一次。此外,我檢查了網站包,並且已經存在這個文件「cv2.pyd」。 – Sanchit

+1

如果你已經在64位上安裝python並且擴展被編譯爲32位,就會發生dll錯誤... – StefanNch

+0

嗨,我解決了這個問題。我剛剛安裝了Python(x,y)的另一個版本(2.7.5.0):它工作正常。 – Sanchit

9
  1. 使用的Dependency Walker(http://www.dependencywalker.com/)您cv2.pyd從 '站點包'。
  2. 看看左上角,庫樹在哪裏。
  3. 正常的圖書館有藍色或灰色的圖標,在左側找到帶有紅色圖標的圖書館,如下所示:http://i.stack.imgur.com/YiEuD.png
  4. 查找API有紅旗並記得帶有紅色圖標的庫的庫名稱。紅旗意味着父庫需要一些API,這在底層庫中是不存在的。在我的情況下,帶有紅色圖標的庫是'kernel32.dll',它的父庫是msvcr90.dll,tbb.dll和來自'winsxs'的庫,該庫的名稱被掩蓋了。
  5. 通常可以通過獲取正確版本的父庫來解決問題。 例如,您正試圖在Windows XP上使用爲Windows Vista編譯的DLL。該DLL導入一個'InitializeCriticalSectionEx'API,它在Windows XP的'kernel32.dll'中不存在。獲得您的DLL的XP版本或重新編譯它與'InitializeCriticalSection'而不是'Ex'將解決問題。 另一個例子:你使用的是經過編譯的OpenCV與Qt 4.8.4和PyQt4一起使用,它包含Qt 4.7版本。 cv2.pyd(順便說一下,它是一個DLL)會拒絕導入,因爲OpenCV中的某些Qt API在4.7的DLL中不可用。解決的辦法是將Qt庫4.8.4放入你的'%PYTHONHOME%\ Lib \ site-packages \ PyQt4'文件夾或PATH中。我自己從git repo構建自己的OpenCV版本時遇到了這個問題。
0

我有同樣的問題,當我使用ipython [只需在cmd上編寫ipython,如果你有ipython安裝]它的作品。

0

以下爲我工作。假設Python的(X,Y)被安裝(和OpenCV的選項在安裝之初被選中),我做了以下步驟:在

  1. 下載OpenCV的-2.4.13,並提取文件給定文件夾。
  2. 複製文件「cv2.pyd」(這是一個10MB的文件)
  3. 替換「... \ Lib \ site-packages」文件夾中的文件cv2.pyd。您會注意到原始的「cv2.pyc」文件大小低於2MB。
  4. 啓動Python(x,y)和Spyder。在Python控制檯中鍵入「cv2。版本」。你可能會得到>>> cv2。 版本 - >'2.4.13'
  5. OpenCV正在運行!
1

對於使用python 3的程序員,請下載一個wheel包以安裝OpenCV。

您需要確保NumPy已經安裝。 Anaconda是一個很好的包來處理依賴關係。它會讓你的盒子變得不平坦。

然後,下載從對應於你的Python安裝版本 OpenCV的版本:http://www.lfd.uci.edu/~gohlke/pythonlibs/

您可以通過運行找到你的Python解釋器的版本:

python --version 

在我的情況,我跑C-Python 3.5,我選擇了: opencv_python-3.2.0-cp -cp m-wi n_amd64.whl

最後,在你下載的輪包的目錄,運行:

pip install opencv_python-3.X.X-cpXX-cpXXm-xxxx.whl 
+0

曾在Python 3.6和OpenCV 3.3.0上使用Anaconda3(5.0.0)/ Windows 10 挖了4個小時SO和其他網站,卸載所有內容並重新安裝所有內容,這是opencv工作的答案。即使在嘗試按照SO上的許多問題中的建議替換文件「python3.dll」時,使用conda從conda-forge安裝opencv對我來說也不起作用 。 – Eskapp

相關問題