簡體   English   中英

pyinstaller部署的exe文件無法在另一台PC(虛擬機)上運行

[英]exe file deployed by pyinstaller can not run on another pc(virtual machine)

顯影機:

我使用pyinstaller qrprint.py部署,在此機器上運行良好。

然后我將文件夾復制到虛擬機(VMware Workstation + Winowd7 32bit)並運行,它無法與信息一起使用。 Failed to execute script pyi_rth_qt5

我嘗試搜索解決方案,例如https://github.com/pyinstaller/pyinstaller/issues/1679 ,它無濟於事。 我用DependencyWalker發現缺少的dll,無法正常工作。

這是使用pyinstaller qrprint.py --debug在兩台機器上的信息

開發者:

PyInstaller Bootloader 3.x
LOADER: executable is C:\Users\Administrator\Desktop\python demo\dist\qrPrint\qrPrint.exe
LOADER: homepath is C:\Users\Administrator\Desktop\python demo\dist\qrPrint
LOADER: _MEIPASS2 is NULL
LOADER: archivename is C:\Users\Administrator\Desktop\python demo\dist\qrPrint\qrPrint.exe
LOADER: No need to extract files to run; setting extractionpath to homepath
LOADER: SetDllDirectory(C:\Users\Administrator\Desktop\python demo\dist\qrPrint)
LOADER: Already in the child - running user's code.
LOADER: Python library: C:\Users\Administrator\Desktop\python demo\dist\qrPrint\python27.dll
LOADER: Loaded functions from Python library.
LOADER: Manipulating environment (sys.path, sys.prefix)
LOADER: sys.prefix is C:\Users\ADMINI~1\Desktop\PYTHON~1\dist\qrPrint
LOADER: Setting runtime options
LOADER: Initializing python
LOADER: Overriding Python's sys.path
LOADER: Post-init sys.path is C:\Users\Administrator\Desktop\python demo\dist\qrPrint
LOADER: Setting sys.argv
LOADER: setting sys._MEIPASS
LOADER: importing modules from CArchive
LOADER: extracted struct
LOADER: callfunction returned...
LOADER: extracted pyimod01_os_path
LOADER: callfunction returned...
LOADER: extracted pyimod02_archive
LOADER: callfunction returned...
LOADER: extracted pyimod03_importers
LOADER: callfunction returned...
LOADER: Installing PYZ archive with Python modules.
LOADER: PYZ archive: out00-PYZ.pyz
LOADER: Running pyiboot01_bootstrap.py
LOADER: Running pyi_rth__tkinter.py
LOADER: Running pyi_rth_qt5.py
LOADER: Running pyi_rth_qt5plugins.py
LOADER: Running qrPrint.py

虛擬機:

PyInstaller Bootloader 3.x
LOADER: executable is C:\Users\Administrator\Desktop\qrPrint\qrPrint.exe
LOADER: homepath is C:\Users\Administrator\Desktop\qrPrint
LOADER: _MEIPASS2 is NULL
LOADER: archivename is C:\Users\Administrator\Desktop\qrPrint\qrPrint.exe
LOADER: No need to extract files to run; setting extractionpath to homepath
LOADER: SetDllDirectory(C:\Users\Administrator\Desktop\qrPrint)
LOADER: Already in the child - running user's code.
LOADER: Python library: C:\Users\Administrator\Desktop\qrPrint\python27.dll
LOADER: Loaded functions from Python library.
LOADER: Manipulating environment (sys.path, sys.prefix)
LOADER: sys.prefix is C:\Users\ADMINI~1\Desktop\qrPrint
LOADER: Setting runtime options
LOADER: Initializing python
LOADER: Overriding Python's sys.path
LOADER: Post-init sys.path is C:\Users\Administrator\Desktop\qrPrint
LOADER: Setting sys.argv
LOADER: setting sys._MEIPASS
LOADER: importing modules from CArchive
LOADER: extracted struct
LOADER: callfunction returned...
LOADER: extracted pyimod01_os_path
LOADER: callfunction returned...
LOADER: extracted pyimod02_archive
LOADER: callfunction returned...
LOADER: extracted pyimod03_importers
LOADER: callfunction returned...
LOADER: Installing PYZ archive with Python modules.
LOADER: PYZ archive: out00-PYZ.pyz
LOADER: Running pyiboot01_bootstrap.py
LOADER: Running pyi_rth__tkinter.py
LOADER: Running pyi_rth_qt5.py
Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth_qt5.py", line 56, in <m
odule>
  File "c:\dvlp\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers
.py", line 546, in load_module
ImportError: DLL load failed: 找不到指定的模塊。
Failed to execute script pyi_rth_qt5
LOADER: OK.
LOADER: Cleaning up Python interpreter.

我該怎么辦?

我找到了原因。 它是如此愚蠢,以至於我忘了安裝vc runtime libiray。 安裝后,效果很好。

但是我不能在XP上工作,我認為原因是Qt5.7.1 msvc 2015不支持XP。

如何使Qt5.7.1中的PyQt5與支持XP兼容是另一個問題。

暫無
暫無

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

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