我最近从python 2.7更改为python 3.4和anaconda。
我必须对代码进行一些更改才能在3.4中运行,但是遇到一个问题,我不确定这是由新版本的Python还是Anaconda本身引起的。
在过渡之前,我有命令
p=subprocess.Popen('Location of .exe file')
当它在不同的窗口/控制台中打开我的.exe文件时,此方法运行良好,当python程序在后台运行时,我必须在其中提供一些输入。
现在,当我尝试运行相同的命令时,将在单独的控制台上运行,并且必须在运行python程序的同一控制台上提供输入。
有什么办法可以使它回到原来的样子吗?有人可以首先向我解释造成此更改的原因吗?在此论坛上已针对此问题提出了一些建议,但到目前为止没有任何效果。
我感谢您的帮助
仅仅从Python的版本2传递到版本3不会产生什么区别。
我认为在旧的Python2.7环境中,您正在使用Pythonw.exe
(请注意结尾的w)执行初始脚本,而在新的Python3中,您正在使用Python.exe
。
两种版本都有这两种口味。区别在于,这Python.exe
是一个控制台应用程序,而Pythonw.exe
一个GUI是:
Python.exe
使用其父控制台并将其交给其(控制台)子进程-如果从GUI程序(例如资源管理器)启动,它将分配一个新的控制台Pythonw.exe
忽略其父控制台,并且将为任何(控制台)子进程分配一个新的控制台。但是,如果您尝试不使用脚本来执行它,则由于它没有标准输入,它将立即结束。因此,仅用于Pythonw
启动脚本,每个子进程都将具有其一个控制台
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句