当前位置:网站首页 > 云计算与后端部署 > 正文

py文件打包成exe之后打开没有窗体(py转换成exe后打开没用)



由于更换电脑,本人将 Pyside6 工程项目迁移到新电脑(均为 Windows11 系统)。本人使用 的一个虚拟环境(名称为 ),在项目根目录下使用 包创建了专用于 Pyside6 项目开发的虚拟环境(目录为 ),利用旧电脑上生成的 使用 pip 重新安装新环境。

内容如下:

 

环境装好后,项目直接使用 运行没有任何问题,但在使用 打包后,运行 下的 exe 可执行文件,程序直接闪退。

的 文件内容为:

 

exe 的报错信息(使用命令行运行 exe 可观测到报错信息)如下:

 

核心报错信息为:

旧电脑上没有遇到该问题。


重装环境、查遍互联网,网友提出了很多解决方案,包括但不限于:

  1. 更新所有包,包括改变 、 版本(没用)
  2. 指定 的 参数为缺失的 DLL 路径 参数、 文件中的 路径)(没用)
  3. 指定 、 为 DLL 路径(不完全有用)

    将缺失的 DLL 文件全部加入 也可以,但不够优雅。请见后文分析。

  4. 引入 exe 运行时报错的包(没用)
  5. 其它奇奇怪怪的方法(安装 Microsoft Visual C++ 2015 ???

看来只能自行分析了(汗)。本人进入虚拟环境后,执行 没有报错,说明库是正常安装的(而且 python 运行项目也没有报错),问题可能出在 。

检查 打包时的输出信息,发现在加载部分包时,丢失 DLL 文件:

 

推测是 等关键 DLL 文件在 路径 无法找到 。

本人在项目的虚拟环境目录 下搜索缺失的 DLL 文件,确实无法找到(不明原因),但在 环境中找到了这些 DLL 文件,路径为 ,说明 找错地方了(不明原因)。

在 的输出信息中,观察 和 路径,发现搜索路径不包含 ,说明可能是路径错误导致找不到 DLL 文件。

  • 一种解决方法是将缺失的 DLL 文件全部加入 的 binaries 中,但不太优雅;
  • 另一种方法是希望 自动查找缺失的 DLL 文件。查遍互联网,暂未找到如何将 DLL 路径加入 的方法,但是我们可以加入 ,曲线救国。

在 文件开头加上:

 

其中 包含 找不到的 DLL 文件名, 更换为读者自己的 虚拟环境的 路径。

然后 赋值为:

 

再执行 打包。

将 DLL 路径临时加入系统 环境变量,即在 文件开头加上:

 

DLL 路径 更换为读者自己的 虚拟环境的 路径。


按理说 不应找不到 DLL 文件,且 DLL 文件竟然都在 环境中、而非项目的虚拟环境 中,本人尚未知晓原因。以上方法仅为权宜之计,治标不治本,若有更好方法欢迎评论区交流。

到此这篇py文件打包成exe之后打开没有窗体(py转换成exe后打开没用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 苹果电脑装了双系统以后怎么恢复(苹果电脑装了双系统后怎么恢复苹果系统)2024-12-19 07:54:08
  • redis端口号及其占用的主要资源是什么(redis端口号及其占用的主要资源是什么意思)2024-12-19 07:54:08
  • redis的端口号是多少(redis 6380端口)2024-12-19 07:54:08
  • 模型部署到服务器(模型部署到服务器怎么操作)2024-12-19 07:54:08
  • nfs客户端端口(nfs使用的端口号)2024-12-19 07:54:08
  • git部署到服务器上(git服务器端)2024-12-19 07:54:08
  • yum安装rzsz(yum安装源配置文件的后缀名必须是)2024-12-19 07:54:08
  • onnx模型部署要求(ncnn模型部署)2024-12-19 07:54:08
  • 安装软件后缀字母(安装软件后缀字母代表什么)2024-12-19 07:54:08
  • redis的端口号是多少(redis常用端口)2024-12-19 07:54:08
  • 全屏图片