使用无控制台和无调试选项时,可执行文件上的 Pyinstaller 编解码器错误

Posted

技术标签:

【中文标题】使用无控制台和无调试选项时,可执行文件上的 Pyinstaller 编解码器错误【英文标题】:Pyinstaller Codec Error on Executable When Using No Console And No Debug Option 【发布时间】:2022-01-15 21:48:00 【问题描述】:

我正在制作这个使用 imageio 和 imageio-ffmpeg 的程序,我想把它变成一个可执行文件,所以我进入了我用于项目的 virtualenv 环境,生成了带有 pyi-makespec 的 .spec,然后在尝试了很长时间后,我通过将其添加到 .spec 文件的 binaries 部分来使其工作:

binaries=[("C:\\Users\\me\\video_env\\Lib\\site-packages\\imageio_ffmpeg", "imageio_ffmpeg"), ("C:\\Users\\me\\video_env\\Lib\\site-packages\\imageio", "imageio")],

然后我将consoledebug 更改为True,并生成了可执行文件。它有效。现在一切正常,我再次将consoledebug 更改为False,生成了可执行文件,但这次它不再工作了。程序正确打开,但是当它到达使用 imageio 的地方时,它崩溃了,我从 pyinstaller 得到这个错误窗口:

为了确定,我再次打开了consoledebug,果然,它又可以工作了:

如果我有debug=Falseconsole=True,它也可以工作,但它不适用于debug=Trueconsole=False。我在使用二进制文件时犯了错误吗?我不知道如何解决这个问题,请帮助我。

【问题讨论】:

【参考方案1】:

我发现它为什么不起作用,这是 pyinstaller 中的一个错误。当我使用 pyinstaller 的开发版本时它起作用了。我在cmd中运行pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip,再次运行pyinstaller命令,果然成功了。

【讨论】:

以上是关于使用无控制台和无调试选项时,可执行文件上的 Pyinstaller 编解码器错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 graphql、aws lambda 和无服务器框架的多个 url 路径选项错误

流的有状态和无状态方法

有没有办法在每次控制进入网络选项卡中的脚本时放置一个调试器

调试器gdb

从 z/OS 上的 C 语言可执行文件中删除符号信息

如何调试由其他可执行文件启动的进程!