由于更换电脑,本人将 Pyside6 工程项目迁移到新电脑(均为 Windows11 系统)。本人使用 的一个虚拟环境(名称为 ),在项目根目录下使用 包创建了专用于 Pyside6 项目开发的虚拟环境(目录为 ),利用旧电脑上生成的 使用 pip 重新安装新环境。
内容如下:
环境装好后,项目直接使用 运行没有任何问题,但在使用 打包后,运行 下的 exe 可执行文件,程序直接闪退。
的 文件内容为:
exe 的报错信息(使用命令行运行 exe 可观测到报错信息)如下:
核心报错信息为:
旧电脑上没有遇到该问题。
重装环境、查遍互联网,网友提出了很多解决方案,包括但不限于:
- 更新所有包,包括改变 、 版本(没用)
- 指定 的 参数为缺失的 DLL 路径 参数、 文件中的 路径)(没用)
- 指定 、 为 DLL 路径(不完全有用)
将缺失的 DLL 文件全部加入 也可以,但不够优雅。请见后文分析。
- 引入 exe 运行时报错的包(没用)
- 其它奇奇怪怪的方法(
安装 Microsoft Visual C++ 2015 ???)
看来只能自行分析了(汗)。本人进入虚拟环境后,执行 没有报错,说明库是正常安装的(而且 python 运行项目也没有报错),问题可能出在 。
检查 打包时的输出信息,发现在加载部分包时,丢失 DLL 文件:
推测是 等关键 DLL 文件在 路径 无法找到 。
本人在项目的虚拟环境目录 下搜索缺失的 DLL 文件,确实无法找到(不明原因),但在 环境中找到了这些 DLL 文件,路径为 ,说明 找错地方了(不明原因)。
在 的输出信息中,观察 和 路径,发现搜索路径不包含 ,说明可能是路径错误导致找不到 DLL 文件。
- 一种解决方法是将缺失的 DLL 文件全部加入 的 binaries 中,但不太优雅;
- 另一种方法是希望 自动查找缺失的 DLL 文件。查遍互联网,暂未找到如何将 DLL 路径加入 的方法,但是我们可以加入 ,曲线救国。
在 文件开头加上:
其中 包含 找不到的 DLL 文件名, 更换为读者自己的 虚拟环境的 路径。
然后 赋值为:
再执行 打包。
将 DLL 路径临时加入系统 环境变量,即在 文件开头加上:
DLL 路径 更换为读者自己的 虚拟环境的 路径。
按理说 不应找不到 DLL 文件,且 DLL 文件竟然都在 环境中、而非项目的虚拟环境 中,本人尚未知晓原因。以上方法仅为权宜之计,治标不治本,若有更好方法欢迎评论区交流。
到此这篇py文件打包成exe之后打开没有窗体(py转换成exe后打开没用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/44287.html