一定一定要記錄一下這個問題,對於一個python的小白小白的我,折磨了我一天半的時間才解決!!
事情的起因是學習airtest,官方文檔介紹說可以在python環境運行.air腳本,於是開始了python相關環境的折騰;
首先,我的電腦上在之前就安裝了python2的環境,環境也應該都是正常的,跟着airtest的官方文檔,安裝了相關packgages後,輸入腳本運行命令,還是報錯,於是開啓瞭解決征程
airtest官方網建議用python3,我這邊python2跟着官方方式解決問題,並沒有什麼卵用,最後放棄python2,懷疑是python版本問題
嘗試1:卸載python2,安裝python3,安裝後並沒有什麼卵用,繼續一樣的問題排查
在網上查找很多資料後,瞭解到,運行.air腳本會用的cv2模塊,上圖的模塊就是cv2模塊導致的問題,引用cv2時就是該錯誤,如圖
嘗試2:網上說openvc版本應該與python版本兼容,通過pip安裝、網上安裝對應版本後,問題仍然存在
嘗試3:安裝c++ 2017進行安裝:https://download.csdn.net/download/x_uhen/10616545,安裝後問題仍然存在
嘗試4:安裝numpy和opencv_python包放到python的site_packages下(下載地址https://www.lfd.uci.edu/~gohlke/pythonlibs/),或者pip安裝即可,下載後問題仍然存在
嘗試5:python中缺少python3.dll文件,查看我的python安裝模塊,沒有問題,不缺少
嘗試6:使用depends軟件查看缺失了什麼DLL(失敗)
下載地址:http://www.dependencywalker.com/
下載後使用軟件打開python下cv2目錄下的cv2.cp36-win_amd64.pyd文件(我的在C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\cv2),軟件提示缺失了兩個DLL,就是圖中黃色的兩個:
於是在電腦中查找,兩個文件都沒有,在百度上下載了對應系統的兩個dll文件,放到了對應的系統文件下,結果depends顯示api-ms-win-downlevel-shlwapi-l1-1-0.dll的文件還是找不到,IEShims.dll已經找到了,於是將api-ms-win-downlevel-shlwapi-l1-1-0.dll文件複製到cv2路徑下,再次用depends查看沒有問題,如圖:
這裏我的電腦是64位的系統,複製的也是64的dll文件,卻提示不是有效的win32應用程序,於是就替換了文件爲win32的dll,結果再次嘗試:
成功!!!成功!!
結果問題就是,我的電腦系統確實dll文件,並且安裝後,python識別不了電腦路徑,從而找不到其中一個dll文件,索性將dll文件放到python對應目錄下解決!!!呵呵.....
參考文章:
https://blog.csdn.net/qq_36986305/article/details/81673901