Pyinstaller可执行文件崩溃了吗?

时间:2019-07-03 19:12:15

标签: python pyinstaller

我正在尝试使用pyinstaller为我的python程序制作可执行文件。

我已经尝试了以下命令pyinstaller --debug --onefile run.pypyinstaller --onefile -w run.py

使用debug选项运行时,程序将启动并开始为程序找到必要的导入。然后,它执行我放置在程序开头的打印语句。立即在print语句之后开始运行destroy语句。然后命令窗口关闭,程序从不打开。

在没有调试选项的情况下运行时,程序将加载约十秒钟,然后出现Windows消息框,并显示错误“无法执行脚本运行”。在禁用调试选项的情况下,不会出现此消息框。

我正在为此程序使用tkinter。有一些想法认为tkinter可能是问题,但没有真正的证据,只是预感。任何建议都欢迎,谢谢。

1 个答案:

答案 0 :(得分:1)

有一个pyinstaller错误试图导入 C 指针,这被标识为误报,因为尽管它们不是直接导入的,但执行该程序的系统的API是对于Windows 10之前的计算机,可以通过安装分发软件包 C ++ 来解决,但这是一个小问题

关于执行问题,您应该检查/执行以下操作:

  • 为程序name.py
  • 创建 SPEC 文件
  • 验证所选选项与SPEC文件匹配
  • 验证哪些模块是用python编写的,哪些模块具有指向 C 的二进制链接 库
  • 将找到的二进制文件添加到 SPEC 文件中,以便将它们打包在目录中。
  • 验证是否所有第三方库都已添加到 SPEC 文件或主执行文件中,即name.py并将文件导入同一目录:{{ 1}},并且在Name2.py内部将未显示的库导入其中,该库可能不会被导入,并且可能导致错误。

一旦将该程序编译到一个目录中,请确认一切正常,如果失败,请进行手动修复,列出它们,然后尝试将其添加到 SPEC 文件或name.py这样,下次您要编译项目时,运行就不会出现问题,

建议,尝试使用分发目录,它将减少您的麻烦并加快程序的加载,缩短开发时间,尝试使用启动器的模型,仅在调用了name.py的主要功能,并导入必要的库。因此,每次修改name .py时,您都会立即注意到更改。

一旦一切运行起来,您可以决定退出启动器模型还是将所有内容传递到单个文件中