python程序的运行过程_python代码是怎样运行的
python作为一种动态语言,其实是一个解释器软件包。当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤。第一步是编译成所谓的“字节码”,如果Python进程拥有写入权限,将把程序的字节码保存为一个以.pyc为扩展名的文件, 如果Python无法在机器上写入字节码,程序仍然可以工作:字节码将会在内存中生成并在程序结束时简单地丢弃。
一旦程序编译成字节码(或字节码从已经存在的.pyc文件中载入),之后的字节码发送到通常称为Python虚拟机(Python VirtualMachine,简写为PVM)上来执行。PVM不是一个独立的程序,是Python的运行引擎,不需要安装。事实上PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。
因此Python具有更多的动态语言特性:在运行时,Python程序去构建并执行另一个Python程序是有可能的,而且往往是非常方便的。例如,eval和exec内置模块,能够接受并运行包含Python程序代码的字符串。使用如下代码可以查看add函数的字节码:import dis
def add(a,b):
sum=a+b
return sum
print(dis.dis(add))
主要的python解释器
CPython
当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器,也是默认的python解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。Jython脚本可以应用于开发Web applet和servlet,建立基于Java的GUI。此外,Jython具有集成支持的功能,允许导入Python代码或使用Java的类。因为Jython要比CPython慢而且也不够健壮,它往往看做是一个主要面向寻找Java代码前端脚本语言的Java开发者的一个有趣的工具。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
生成独立运行程序
借助一些第三方工具Python程序可以生成独立的可执行二进制代码文件进行分发。这些第三方工具能够将程序的字节码、PVM(解释器)以及任何程序所需要的Python支持文件捆绑在一起形成一个单独的文件。,主要有三种工具:py2exe(Windows下使用)、PyInstaller(和py2exe类似,它能够在Linux及UNIX上使用,并且能够生成自安装的独立执行程序)以及freeze(最初始的版本)。
python程序的运行过程_python代码是怎样运行的相关推荐
- 简述python程序的书写规范_Python代码书写规范
Python 编码规范 一 代码编排 1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格. 2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点 ...
- python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程
教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...
- python运行程序-Python程序的执行过程
1.C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计算机是不能识别高级语言的,所以,必须要通过编译,链接等手段,将.c文件转换成可执行文件,可执行文件就是纯二进制文件,然后计算机才 ...
- python运行程序-一文看懂python程序的执行过程
本文主要介绍的是python程序的执行过程,首先介绍的是编译过程,其次介绍的是过程图解及编译字节码,最后介绍了codeobject对象的属性,具体的跟随小编一起来了解一下. 一.编译过程概述 当我们执 ...
- python打开是什么样的-Python程序的执行过程是什么样的?
我们都知道,使用CC++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制可执行文件.运行该程序的时候,就可以二进制程序从硬盘载入到内存中并运行. 但 ...
- Python程序的执行过程
解释器 解释器是代码与机器的计算机硬件之间的软件逻辑层,是一种让其他程序运行起来的程序. Python解释器将读取一段Python程序,并按照其中的命令执行,得出结果.编写的Python程序必须在解释 ...
- Python程序的执行过程 解释型语言和编译型语言
转载地址:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html 1.C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计 ...
- 说说Python程序的执行过程
原文地址为: 说说Python程序的执行过程 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到 ...
- python语言是编译型语言-Python程序的执行过程原理(解释型语言和编译型语言)...
Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的 ...
- ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
IE浏览器不能运行js JS代码失效不能运行了如何解决 发布时间:2012-02-20 16:39:23 作者:佚名 我要评论 IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办 ...
最新文章
- python基础--函数
- 可以让你玩儿光剑的程序,vc实现方法和代码
- 2012服务器文件加密,Windows Server 2012安全方面的改变_服务器评测与技术-中关村在线...
- 参数--argumengs
- 【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵
- 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
- 【chorme插件开发】第二节:插件的配置文件说明及素材
- OSChina 周六乱弹 ——用大脑直接写代码
- flash flip 效果集
- 设计模式学习笔记(3)装饰器
- 两个excel表格信息合并 自动匹配_别再复制黏贴了,合并两个Excel表格可以很简单!...
- JavaSE--day01(基础知识)
- linux go vendor目录,golang使用govendor教程
- 2021-2022 ICPC, NERC, Northern Eurasia Onsite C Connect the Points
- Redis Client UI工具
- 运行快应用rpk文件只需要3分钟4个步骤?
- vue滚动条插件vue-happy-scroll
- 【Vscode】解决报错 An SSH installation couldn‘t be found
- 【CheatEngine】关于BCR的内存分析
- 深信服——字符串模糊匹配
热门文章
- 50. 避免重定向(11)
- 1. Composer 简介
- smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
- js里用append()和appendChild有什么区别?
- PLSQL使用技巧 如何设置默认显示My Objects、记住密码等
- PHP可变变量的简单使用
- /var/run/yum.pid 已被锁定,PID 为 XXXX 的另一个程序正在运行。
- [高中作文赏析]渴望从前
- 带你一起来理解:函数去抖(debounce)和 函数节流(throttle)的作用和区别
- iframe页面使用Js实现父页面和子页面通信