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代码是怎样运行的相关推荐

  1. 简述python程序的书写规范_Python代码书写规范

    Python 编码规范 一 代码编排 1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格. 2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点 ...

  2. python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程

    教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...

  3. python运行程序-Python程序的执行过程

    1.C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计算机是不能识别高级语言的,所以,必须要通过编译,链接等手段,将.c文件转换成可执行文件,可执行文件就是纯二进制文件,然后计算机才 ...

  4. python运行程序-一文看懂python程序的执行过程

    本文主要介绍的是python程序的执行过程,首先介绍的是编译过程,其次介绍的是过程图解及编译字节码,最后介绍了codeobject对象的属性,具体的跟随小编一起来了解一下. 一.编译过程概述 当我们执 ...

  5. python打开是什么样的-Python程序的执行过程是什么样的?

    我们都知道,使用CC++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制可执行文件.运行该程序的时候,就可以二进制程序从硬盘载入到内存中并运行. 但 ...

  6. Python程序的执行过程

    解释器 解释器是代码与机器的计算机硬件之间的软件逻辑层,是一种让其他程序运行起来的程序. Python解释器将读取一段Python程序,并按照其中的命令执行,得出结果.编写的Python程序必须在解释 ...

  7. Python程序的执行过程 解释型语言和编译型语言

    转载地址:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html 1.C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计 ...

  8. 说说Python程序的执行过程

    原文地址为: 说说Python程序的执行过程 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到 ...

  9. python语言是编译型语言-Python程序的执行过程原理(解释型语言和编译型语言)...

    Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的 ...

  10. ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决

    IE浏览器不能运行js JS代码失效不能运行了如何解决 发布时间:2012-02-20 16:39:23   作者:佚名   我要评论 IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办 ...

最新文章

  1. python基础--函数
  2. 可以让你玩儿光剑的程序,vc实现方法和代码
  3. 2012服务器文件加密,Windows Server 2012安全方面的改变_服务器评测与技术-中关村在线...
  4. 参数--argumengs
  5. 【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵
  6. 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
  7. 【chorme插件开发】第二节:插件的配置文件说明及素材
  8. OSChina 周六乱弹 ——用大脑直接写代码
  9. flash flip 效果集
  10. 设计模式学习笔记(3)装饰器
  11. 两个excel表格信息合并 自动匹配_别再复制黏贴了,合并两个Excel表格可以很简单!...
  12. JavaSE--day01(基础知识)
  13. linux go vendor目录,golang使用govendor教程
  14. 2021-2022 ICPC, NERC, Northern Eurasia Onsite C Connect the Points
  15. Redis Client UI工具
  16. 运行快应用rpk文件只需要3分钟4个步骤?
  17. vue滚动条插件vue-happy-scroll
  18. 【Vscode】解决报错 An SSH installation couldn‘t be found
  19. 【CheatEngine】关于BCR的内存分析
  20. 深信服——字符串模糊匹配

热门文章

  1. 50. 避免重定向(11)
  2. 1. Composer 简介
  3. smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
  4. js里用append()和appendChild有什么区别?
  5. PLSQL使用技巧 如何设置默认显示My Objects、记住密码等
  6. PHP可变变量的简单使用
  7. /var/run/yum.pid 已被锁定,PID 为 XXXX 的另一个程序正在运行。
  8. [高中作文赏析]渴望从前
  9. 带你一起来理解:函数去抖(debounce)和 函数节流(throttle)的作用和区别
  10. iframe页面使用Js实现父页面和子页面通信