python和pythonw

在Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序。如下图所示:

它们到底有什么区别和联系呢?

概括说明一下:

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

pythonw.exe是无窗口的Python可执行程序,意思是在运行程序的时候,没有窗口,代码在后台执行。

.py和.pyw文件的区别也来源于python.exe和pythonw.exe的区别:

安装视窗版 Python 时,扩展名为 .py 的文件被默认为用 python.exe 运行的文件,而 .pyw文件则被默认为用 pythonw.exe 运行。

pyw

.pyw格式是被设计用来运行开发的纯图形界面程序的,纯图形界面程序的用户不需要看到控制台窗口。在开发纯图形界面程序的时候,可以暂时把 .pyw 改成 .py ,运行时能调出控制台窗口,方便看到所有错误信息。

pyc

至于.pyc文件,是Python解释器运行程序的过程中产生的字节码文件(也就是中间文件)。Python什么情况下产生pyc文件?

pyo

在pyc的基础上,去掉了assert和docstring

python3.5之后,无.pyo文件

编译器基础

.py经过编译,生成.pyc和.pyo,使用-O和-OO参数

py文件执行后不马上关闭窗口

这里还要解释一个问题,如果.py文件直接用python.exe打开,文件被执行完成之后,视窗会立即关闭,如果想让视窗停留,给大家提供几个方法:

  1. 可以在程序中import time模块,加入超长睡眠语句,如time.sleep(1800),如果你不手动关闭视窗,视窗将会停留30min;

  2. 可以调用sys和os模块,使用命令行语句pause,示例:import os os.system("pause")

  3. 在脚本的最后加入一行 input("请按任意键继续"),这样会等待输入任意字符后才会关闭窗口

python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc、.pyo文件)的更多相关文章

  1. [Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)

    Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...

  2. Windows下python3和python2同时安装python2.exe、python3.exe和pip2、pip3设置

    1.添加python2到系统环境变量 打开,控制面板\系统和安全\系统,选择高级系统设置,环境变量,选择Path,点击编辑,新建,分别添加D:\Python\python27和D:\Python\py ...

  3. Windows10下python3和python2同时安装(二)python2.exe、python3.exe和pip2、pip3设置

    Windows10下python3和python2同时安装(二) python2.exe.python3.exe和pip2.pip3设置 说明:安装安装python3和python2请参考本系列教程( ...

  4. python下编译py成pyc和pyo

     python下编译py成pyc和pyo   其实很简单, 用 python -m py_compile file.py python -m py_compile /root/src/{file1,f ...

  5. Tomcat的bin目录下startup.bat、Tomcat6.exe、Tomcat6w.exe区别

    从官方下载了apache-tomcat-6.0.37-windows-x64.zip安装包,解压后bin目录下的startup.bat.Tomcat6.exe.Tomcat6w.exe 3个程序有何区 ...

  6. 将Python脚本封装成exe可执行文件 转

    将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html  cx_freeze是用来将 Pyt ...

  7. 【转载】将python脚本打包成exe文件

    exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执 行,每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦地cd ...

  8. python源文件转换成exe问题解决贴

    项目上做一个小工具,通过webservice接口实现配置下发.python文件调试通过了,想把它抓换成exe,网上查了下,得知有py2exe这个好用精简的小工具,本以为分分钟搞定的事情,结果经历了九转 ...

  9. 将Python程序打包为exe方法

    将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windo ...

  10. pyinstaller使用-python项目转换成exe可执行文件

    http://blog.csdn.net/pipisorry/article/details/50620122 Python不是每个人的计算机里面都有安装,当您写了一个好用的工具,需要一个standa ...

随机推荐

  1. Axure 标记元件

    快照:可以用来表示控件的截图功能 箭头:有了连线,基本很少用它 便签:相关于便利贴,写些说明.备注, 标记:标记好数字,对应数字的标记做解释说明

  2. Mybatis 模块拆份带来的 Mapper 扫描问题

    项目中,两个模块中都放了 Mapper,如下所示 @MapperScan(basePackages ={"com.vipsoft.his.mapper","com.vip ...

  3. GitLab--安装部署

    配置信息 系统:centos7.8 gitlab版本:12.8.8 1 下载gitlab wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum ...

  4. Java 使用 slf4j + log4j 写日志

    没有SpringBoot等框架的情况下 pom.xml: <properties> <slf4j.version>1.7.26</slf4j.version> &l ...

  5. Sentinel 是如何做限流的

    限流是保障服务高可用的方式之一,尤其是在微服务架构中,对接口或资源进行限流可以有效地保障服务的可用性和稳定性. 之前的项目中使用的限流措施主要是Guava的RateLimiter.RateLimite ...

  6. SpringBoot AOP 记录操作日志、异常日志

    使用SpringBoot AOP 记录操作日志.异常日志 我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能.在操作某些功能时也有可能会发生异常,但是每次发生异常要定位原因 ...

  7. freeswitch两个DTMF转换接口的区别

    概述 freeswitch支持三种模式的DTMF传输方式,分别时inband.INFO.2833. 在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中, ...

  8. C#通过泛型实现对子窗体的不同操作

    private void button1_Click(object sender, EventArgs e) { FormOperate<object>();//调用FormOperate ...

  9. loadrunner12的安装教程

    一.LR12安装包: 链接:https://pan.baidu.com/s/1UU304e-nP7qAL-fV8T39YQ 密码:jpln 二.LR12安装: 1.下载完成后点击解压

  10. java项目实践-tomcat实现用户登录-day17

    目录 1. 安装 2. 初识tomcat 2. 创建tomcat项目 3. 启动之前 3. java jsp 4. Request Response对象的其他属性 5. 用户登录小功能 1. 安装 t ...