我制作了宏,其中包括tesseract(用于图像ocr),pyautogui(用于键盘鼠标控制),openpyxl(用于excell文件读写),PIL(用于图像捕获),然后使用pyinstaller将代码制成.exe文件
它在我的笔记本电脑(Windows10 64位设备,我在此笔记本电脑上对其进行了编码)上完美运行,但是在目标设备(Windows7 32位设备)上发生了应用崩溃。
首先,代码可以在10〜12(随机)个宏循环中很好地工作,但是之后,它总是崩溃。
起初是c_type崩溃,所以我修复了我的代码,不使用任何c_type东西,但是在同样的10〜12个循环后又崩溃了,另一个python37.dll崩溃了。
我确定python和每个python库都是32位的。
由于安全原因,我根本无法在目标计算机上安装任何新程序,例如pycharm或python。
有什么办法找出问题所在吗?
答案 0 :(得分:1)
我建议您一些技巧,使用Pyinstaller创建适用于大多数操作系统的应用程序并处理缺少的依赖项:
使用virtual environment来构建您的应用。它将为您带来更好的结果,并避免与当前python构建环境发生任何冲突。并始终尝试在您的环境中安装最新版本的Pyinstaller。
查找所有应用程序依赖项,并将尽可能多的捆绑包与DATA文件一起捆绑到最终可执行文件中。有时Pyinstaller无法捆绑某些模块,因此您需要检查其依赖项并将它们手动添加到输出可执行文件中。您可以找到更多信息here。
如果您希望您的应用程序在Win7等较旧的操作系统上运行,请尝试在Win7计算机上构建您的应用程序。这是因为像Win10这样的新操作系统附带了一些依赖项,但默认情况下它们在Win7中并不存在。
在Pyinstaller和代码中使用调试选项可以更好地理解问题。例如,在构建时使用--debug=all
会为您提供有关错误的更多信息。您可以在here中找到更多信息。