python vs pythonw

python解释器有2个版本,一个是python,另外一个是pythonw。那它们之间有什么区别呢?什么情况下用python什么情况下用pythonw?

先做个小实验,写2个小程序,一个只是输出字符串,一个GUI程序。

* 输出字符串程序 – console.py

import os

print 'Current platform is ', os.name

input=raw_input()
print input

* GUI程序  – GUI.py

import wx

class TestFrame( wx.Frame ):
     def __init__( self, parent=None, pos=wx.DefaultPostion, size=wx.DefaultSize ):
         wx.Frame.__init__( self, parent=parent, pos=pos, size=size )
         self.Show()

if __name__ == '__main__':
    app = wx.App()
    TestApp()
    app.MainLoop()

假设你是在windows下面,直接双击 console.py, 你就可以看到启动了一个控制台窗口,打印除了你的系统平台信息,在windows xp下面是nt。现在我们换一种方式来执行这个程序,右击console.py这个文件,选择打开方式->浏览->选择你的python安装目录下的pythonw.exe,如果你是采用的默认的安装的方式的话,这个文件应该在c:pythonxx,这里的xx是版本信息,比如我的版本是2.7所以xx是27。

然后运行,你会发现什么东西都没有。

对了,肯定是什么都没有,因为这种方式下,控制台窗口会被隐藏,所以输出到控制台的东西当然看不到了。

现在我们来运行gui.py的这个程序,同样还是先双击它,你会发现弹出一个窗口,同时你会看到还有一个控制台窗口,也就是总共弹出了2个窗口。接下来我们选择右键->打开方式,使用pythonw来打开,结果呢?

只有一个窗口,没有控制台窗口了。

也就是如果你的程序只是在控制台窗口中输入输出一些东西,那么使用python打开,这个是你安装完python默认的行为,当然你也可以更改这种默认的行为。如果你的程序的GUI的程序,那么你即可以使用python.exe还可以使用pythonw.exe来打开,如果你不像看到控制台窗口的话,那么pythonw会是你的选择。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示