欢迎光临散文网 会员登陆 & 注册

Python在新CMD控制台中运行其它py程序

2020-09-05 19:17 作者:象喻  | 我要投稿

  想实现在一个py程序中,弹出一个新的CMD控制台来运行其它py程序的功能。看了下多进程和多线程方面的资料,发现不是干这个用的。

  专门做这种事情的模块(库)叫subprocess(Python自带),通过下面的方式可以在Win10中弹出新控制台窗口来运行子程序:

subprocess.run(["python", "程序.py"], creationflags = subprocess.CREATE_NEW_CONSOLE)

["python", "程序.py"] 是个列表:第一个值表示命令,后面的值都表示命令参数

python表示系统的Python命令,后面表示把"程序.py"这个参数传递给前面的python命令

creationflags = subprocess.CREATE_NEW_CONSOLE  是Win平台专用参数:新建控制台窗口


Python venv虚拟环境

  但是,如果是Python venv虚拟环境的话,就不能直接使用系统的Python命令了。那么需要调用venv虚拟目录里的python.exe来解析运行py程序,但直接写硬路径不太好,所以引入sys模块(库),用里面的 sys.executable 可以获取到当前Python解释器的位置。

  所以上面的代码改成:

subprocess.run([

sys.executable

, "web.py"], creationflags = subprocess.CREATE_NEW_CONSOLE)


然后又有新疑问了,这样调用的话,没有进入venv虚拟环境啊。这个请看:


Python在新CMD控制台中运行其它py程序的评论 (共 条)

分享到微博请遵守国家法律