Python CockBook(二)python如何运行程序

python解释器运行原理

编译--> 提高运行速度
如果python进程在机器上有写入权限,那么会在当前目录生成一个.pyc后缀的文件.
下一次运行会检查源文件和字节文件的时间戳.如果都相同会直接跳过编译,直接运行

PVM

python virtual machine
是系统的一个大循环, 不断地执行编译

性能的含义

C和C++是完全编译语言

python中没有build和make,且python的字节码不是机器的二进制编码(Intel芯片的指令),字节码是python特定的一种表现形式,这也是为什么python无法运行得像C或C++的原因

image-20200731140106322

执行模块的变体

python实现的替代者

  • Cpython

系统一般自带的

  • Jpython

编译python源代码 将python源代码编译成java字节码,并将字节码映射到hava虚拟机JVM上

  • IronPython

将python源代码 --> .net字节码

  • Psyco

PVM增强工具,字节码转换成底层真正的二进制机器代码

冻结二进制文件(.exe)

能够将程序的字节码,PVM(解释器)以及任何程序所需要的python支持文件捆绑在一起形成一个单独的文件包.过程会有一些不同,但是实际的结果将会是一个单独的可执行二进制程序.(例如,windows系统中的.exe文件)

三种系统:

  • py2exe(windows下使用)
  • pyinstaller (类似于py2exe, 可以在linux及unix上使用)
  • freeze

其他执行选项

  • stackless Python

  • Cython

未来的可能性

  • Parrot 项目目标提供一种对于多宗编程语言通用的字节码格式,虚拟机以及优化技术
  • PyPy

本章习题

  1. 什么是python解释器?
解释器是一种让其他程序运行起来的程序.
python解释器是运行python程序的程序

当你便写了一段Python程序, Python解释器江都区程序, 并按照其中的命令执行, 得出结果.

实际上, 解释器是代码与机器的计算机硬件之间的软件逻辑层.

  1. 什么是源代码?
源代码是为程序所写的语句: 它包括了文本文件 通常以.py为后缀的文本
  1. 什么是字节码?
源代码底层的与平台无关的表现形式
# 字节码是Python将程序编译后所得到的底层形式. Python自动将字节码保存到后缀名为.pyc的文件中
  1. 什么是PVM?

Python Virtual Machine 虚拟机 迭代运行字节码的一个大循环,是python的运行引擎,通常表现为Python系统中的一部分

它是python虚拟机, 是python运行时引擎解释编译得到的代码
  1. 请列出俩个python标准执行模块的变体的名字?

    Cpython Jpython IRronpython

    Psyco  Shedskin  forzen binaries是执行模块的所有变体
    
  2. Cpython, Jpython以及IronPython有什么不同?

Cpython是python语言的标准实现. Jpython和Ironpython都是python程序的JAVA和.NET实现,他们都是Python的编译器的替代实现

将Python源代码编译成对应的Java或是.NET环境能运行的字节码

posted on 2020-08-28 20:56  sunnywillow  阅读(167)  评论(0编辑  收藏  举报