如何解决使用PyInstaller打包成无控制台程序时与Popen相关的运行错误?

2026-05-27 01:520阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2212个文字,预计阅读时间需要9分钟。

如何解决使用PyInstaller打包成无控制台程序时与Popen相关的运行错误?

有时我们需要在程序中执行一些cmd命令,可以使用os或其它模块中的popen方法去执行。这个问题通常是由于程序内有输入导引导致的,输入可以是input()函数,也可以是其它如os的stdin操作。

有时候我们需要在程序里执行一些cmd命令,使用os或者其它模块中的popen方法去执行

这个问题一般是程序内有输入导致的,这个输入可以是input(),也可以是其它的一些stdin操作(如os.popen实际上会造成输入请求)

本质上就是:使用-w参数(无控制台)打包时程序里不要请求输入

或者,你也可以不用-w参数,手动隐藏控制台!

有一天,我把使用了os.popen方法的python程序用pyinstaller打包成exe(用了无控制台打包参数-w
双击运行时程序却弹框报错!

我就有点纳闷:为什么有控制台打包出来的exe(不使用-w参数)可以运行,使用-w参数(无控制台)打包的却不能运行呢?

首先,调用os.popen部分的代码大概是下面这样的:

with os.popen('taskkill /f /t /im nginx.exe') as re: # 杀掉nginx result = re.read()

执行cmd,杀死nginx。

阅读全文

本文共计2212个文字,预计阅读时间需要9分钟。

如何解决使用PyInstaller打包成无控制台程序时与Popen相关的运行错误?

有时我们需要在程序中执行一些cmd命令,可以使用os或其它模块中的popen方法去执行。这个问题通常是由于程序内有输入导引导致的,输入可以是input()函数,也可以是其它如os的stdin操作。

有时候我们需要在程序里执行一些cmd命令,使用os或者其它模块中的popen方法去执行

这个问题一般是程序内有输入导致的,这个输入可以是input(),也可以是其它的一些stdin操作(如os.popen实际上会造成输入请求)

本质上就是:使用-w参数(无控制台)打包时程序里不要请求输入

或者,你也可以不用-w参数,手动隐藏控制台!

有一天,我把使用了os.popen方法的python程序用pyinstaller打包成exe(用了无控制台打包参数-w
双击运行时程序却弹框报错!

我就有点纳闷:为什么有控制台打包出来的exe(不使用-w参数)可以运行,使用-w参数(无控制台)打包的却不能运行呢?

首先,调用os.popen部分的代码大概是下面这样的:

with os.popen('taskkill /f /t /im nginx.exe') as re: # 杀掉nginx result = re.read()

执行cmd,杀死nginx。

阅读全文