python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)


在用Windows系统搭建好的Python目录中,会发现Python.exe和Pythonw.exe两个程序,它们的差别是什么呢?

简单概括:

python.exe以控制台方式启动,在运行程序的时候,会弹出一个黑色的命令行控制行窗口(也叫DOS/CMD窗口)

pythonw.exe以标准WIN32 GUI方式启动,双击图标不会出现命令控制行窗口,是无窗口的Python可执行程序,代码在后台执行。


使用Pythonw.exe来执行py程序,则需要注意一个问题:如果在py程序中使用了print语句,当print语句填满stdout的输出缓冲后,pythonw.exe会抛出以下异常:

IOError: [Errno 9] Bad file descriptor

然后pythonw.exe则会悄悄地退出而不报告任何错误,如果是线程中使用了print,则会导致该线程悄悄地退出。这个问题有以下再个解决方案:

1. 刷新控制台缓冲

2. 将stdout重定向输出到文件或者空设备


 

根据python.exe和pythonw.exe也可以看出来.py文件和.pyw文件的差别:

扩展名为 .py 的文件被默认为用 python.exe 运行的文件,而 .pyw文件则被默认为用 pythonw.exe 运行。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM