带有子进程和Popen的单独控制台窗口

叶eth罗

我最近从python 2.7更改为python 3.4和anaconda。

我必须对代码进行一些更改才能在3.4中运行,但是遇到一个问题,我不确定这是由新版本的Python还是Anaconda本身引起的。

在过渡之前,我有命令

p=subprocess.Popen('Location of .exe file')

当它在不同的窗口/控制台中打开我的.exe文件时,此方法运行良好,当python程序在后台运行时,我必须在其中提供一些输入。

现在,当我尝试运行相同的命令时,将在单独的控制台上运行,并且必须在运行python程序的同一控制台上提供输入。

有什么办法可以使它回到原来的样子吗?有人可以首先向我解释造成此更改的原因吗?在此论坛上已针对此问题提出了一些建议,但到目前为止没有任何效果。

我感谢您的帮助

塞尔吉·巴莱斯塔(Serge Ballesta)

仅仅从Python的版本2传递到版本3不会产生什么区别。

我认为在旧的Python2.7环境中,您正在使用Pythonw.exe(请注意结尾的w)执行初始脚本,而在新的Python3中,您正在使用Python.exe

两种版本都有这两种口味。区别在于,这Python.exe是一个控制台应用程序,而Pythonw.exe一个GUI是:

  • 从控制台启动时,Python.exe使用其父控制台并将其交给其(控制台)子进程-如果从GUI程序(例如资源管理器)启动,它将分配一个新的控制台
  • 从控制台启动时,将Pythonw.exe忽略其父控制台,并且将为任何(控制台)子进程分配一个新的控制台。但是,如果您尝试不使用脚本来执行它,则由于它没有标准输入,它将立即结束。

因此,仅用于Pythonw启动脚本,每个子进程都将具有其一个控制台

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

IronPython在没有控制台窗口的情况下启动子进程

(C ++,Windows)没有控制台窗口的生成子进程(使用CreateProcess)

具有实时输入和多个控制台的Python子进程

使用python子进程执行命令并隐藏控制台窗口

没有控制台窗口的AppServiceBridge

如何在单独的窗口中查看 Atom 的控制台?

在窗体模式下没有控制台窗口的混合Windows窗体和控制台应用程序

如何在Python中写入子进程的控制台?

防止子进程控制台强制关闭

子进程 C++ 的 Windows 控制台信号处理

nodejs child_process产生了一个子进程,该子进程不显示控制台窗口

如何使用Python的子进程和Popen执行带有插值参数的Java命令

如何使用 Chrome 控制台窗口和控制台命令获取网页的加载时间?

Shellexecute和Wait并保持控制台窗口打开?

使用pyinstaller同时显示窗口和控制台

带有MVC,Ninject和WCF服务的控制台应用程序(处理问题?)

带有Java和Gradle的控制台应用程序

带有WinForm和控制台界面的.Net程序

带有控制台日志和return关键字的不同join method()行为

带有尖括号和方括号的Chrome控制台对象属性

Windows中带有控制台句柄的ReadFileEx和WriteFileEx

如何使用带有caliburn的应用程序同时用于控制台和WPF?

显示带有Spring Boot,Gradle和IDEA的控制台

带有类和仅显示整数的控制台程序

是否有更好的Windows控制台窗口?

控制台窗口的输出是否有限制?

通过带有“登录到控制台”的控制台显示标签

Serilog输出到控制台(带有ToString()数据)和seq(带有结构化数据)

带有jLine的Java控制台应用程序