簡體   English   中英

py2exe到exe文件,它可以在我的PC上運行,但在其他PC上顯示DLL加載失敗

[英]py2exe to exe file, it can run on my pc but show DLL load failed in other pcs

我用模塊opencv,Tkinter,PIL Numpy和一些內置模塊編寫了一個gui程序“ test.py”。 我使用py2exe為該程序生成了一個exe文件,該exe文件在我的PC上運行良好,但是當我在其他PC上嘗試時,它給了我

文件“ test.py”,文件“ cv2.pyc”中的第8行,__ load ImportError中文件“ cv2.pyc”中的第12行,第10行:DLL加載失敗,找不到指定的模塊

我的電腦上有Python是32位

  1. 在“ site-packages”中的cv2.pyd上使用Dependency Walker( http://www.dependencywalker.com/ )。
  2. 查看庫樹所在的左上角。
  3. 普通庫具有藍色或灰色圖標,找到左側帶有紅色圖標的庫,如下所示: http : //i.stack.imgur.com/YiEuD.png
  4. 查找帶有紅色標記的API,並記住帶有紅色圖標的庫的父庫名稱。 紅色標志表示父庫需要一些API,而該API在基礎庫中不存在。 在我的情況下,帶有紅色圖標的庫是'kernel32.dll',其父庫是msvcr90.dll,tbb.dll和'winsxs'中的庫,其名稱被遮蓋了。
  5. 通常,可以通過獲取父庫的正確版本來解決問題。 例如,您嘗試使用Windows XP上為Windows Vista編譯的DLL。 此DLL導入一個“ InitializeCriticalSectionEx” API,Windows XP的“ kernel32.dll”中不存在該API。 獲取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版本時遇到了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM