【问题标题】:My custom macro works on my pc but crashes on target computer我的自定义宏在我的电脑上工作,但在目标电脑上崩溃
【发布时间】:2019-06-11 02:55:17
【问题描述】:

我制作了宏,其中包括 tesseract(用于图像 ocr)、pyautogui(用于键盘鼠标控制)、openpyxl(用于读取和写入 Excel 文件)、PIL(用于图像捕获),我使用 pyinstaller 将该代码制作为 .exe 文件.

它在我的笔记本电脑(windows10 64 位设备,我在这台笔记本电脑上编写代码)上完美运行,但在目标设备(windows7 32 位设备)上发生应用程序崩溃。

奇怪的是,代码在 10~12(随机)宏循环上运行良好。但在那之后,它总是崩溃。

一开始是 c_type 崩溃,所以我修复了我的代码不使用任何 c_type 的东西,但它在相同的 10~12 个循环后崩溃,另一个 python37.dll 崩溃。

我确定 python 和每个 python 库都是 32 位的。

出于安全原因,我根本无法在目标计算机上安装任何新程序,例如 pycharm 或 python。

有什么办法可以找出问题所在?

【问题讨论】:

    标签: python python-3.x macros pyinstaller


    【解决方案1】:

    我建议您使用 Pyinstaller 创建适用于大多数操作系统并处理缺失依赖项的应用程序的一些技巧:

    1. 使用virtual environment 构建您的应用程序。它将为您提供更好的结果并避免与当前的 python 构建环境发生任何冲突。并始终尝试在您的环境中安装最新版本的 Pyinstaller。

    2. 找到所有应用程序依赖项,并尽可能多地捆绑到最终可执行文件中作为 DATA 文件。有时 Pyinstaller 无法捆绑某些模块,因此您需要检查其依赖项并将它们手动添加到您的输出可执行文件中。您可以找到更多信息here

    3. 如果您希望您的应用程序在 Win7 等较旧的操作系统上运行,请尝试在 Win7 计算机上构建您的应用程序。那是因为像 Win10 这样的新操作系统附带了一些依赖项,但默认情况下它们在 Win7 中不存在。

    4. 将调试选项与 Pyinstaller 和您的代码一起使用,以更好地了解您的问题。例如,在构建时使用--debug=all 会给你更多关于错误的信息。你可以在here找到更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多