人生苦短,我用Python。

作为一个开发人员,如何写代码是必须要知道的,代码如何运行也是有必要了解的。通过了解代码如何运行,可指导我们写出效率更高的代码。下午看了《Python学习手册》第二章,了解了一些比较有趣的东西,因此做个总结。

let's do it

Python解释器

提到Python印象大多是编程语言。其实Python是一个名为解释器的软件包,通俗一点解释器就是将你的代码解释给计算机。

官方点,解释器是代码与机器的计算机硬件之间的软件逻辑层。

当安装Python后,他会生成一些组件:至少包括一个解释器和一套支持库。

根据使用情况不同,解释器可能采取可执行程序的形式,或做为链接到另一个程序的库

根据版本不同,解释器本身可以用 C程序实现,或一些Java类实现。

无论如何Python代码必须在解释器上运行

程序执行

惯例,Python文件都是以.py结尾, 但是从技术上来讲,这种命名方案在被"导入”时才是必须的。

当Python运行脚本时,在代码运行前还要做一些工作。

将源码编译成字节码(不是机器码)

将编译的字节码放到Python虚拟机(PVM)中运行

字节码编译

编译是一种简单的翻译步骤,字节码是一种低级的,与平台无关的表现形式(可移植性)这些字节码可以提高执行速度,比源码快得多。

如果Python进程有写入权限,那么他会把字节码保存为一个.pyc为扩展名的文件,3.2之后版本将其放在__pycache__的子目录中,方便下次PVM跳过编译直接取用,没有写入权限的话运行程序还是会翻译成字节码,只不过放内存,程序杀死之后就被丢弃。

Python会检测源文件是否改变,没变就直接用上次的.pyc。

对于Python版本,.pyc的文件名中包含版本,因此可区别不同版本编译的.pyc

.pyc文件起到加速启动的作用,类似于操作系统的缓存,只不过是执行了一部分再缓存。

Python虚拟机(PVM)

PVM用来执行字节码文件。 但实际上它不是一个独立的程序,不用安装,

本质其实就是一个迭代执行字节码指令的大循环,一步步的完成操作。期间会将字节码编译成二进制码。

因此,最终的效果是纯Python代码执行速度介于传统编译语言和传统解释性语言之间(cache的作用)

对开发的意义:编译和执行的的环境是同一个,。因此编译器总在运行时出现,这就使Python程序在运行时去构建和执行另一个Python程序成为可能

执行模型的变体

除了传统的实现模式,Python还有很多实现,简单说一下

CPython:标准Python

由可移植的ANSI C语言代码编写而成,一般来说用的都是这个

特点:运行速度最快、最完整、最新、最健全。上面的图便是CPython的运行时体系结构。

Jython:基于Java的Python

与Java进行集成

IronPython:基于.Net的Python

Stackless:注重并发的Python

PyPy:注重速度的Python 比较有潜力,特别是在CPU密集型代码,计算领域(AI)

随着Python的持续升温,相信以后更加高效的执行模型会出来。

冻结二进制文件

最后记录下这个,就是生成的可执行文件(独立的二进制可执行), 有种打包发布的意思

有许多系统可以生成随平台特性变化的冻结二进制文件

冻结二进制文件其实就是将字节码和PVM混合在一起形成的一个独立组件。由于代码嵌入在冻结二进制文件中,对于接收者来说,代码是看不见的。

这样便实现的单文件的封装,终端用户都不用安装Python就可以运行这些程序。

如何运行大概知道了。

学习尚浅,有错误或不当之处还请指正。

python程序怎么运行-Python如何运行程序相关推荐

  1. 周一02.3运行python程序的两种方式

    一.运行python程序的两种方式 方法一:交互式:                      优点:输入一行代码立刻返回结果                       缺点:无法永久保存代码 方法 ...

  2. python运行文件后缀_Python程序存储成以.py为扩展名的程序文件用Python解释器执行。(4.5分)_学小易找答案...

    [简答题]简述助跑的两种起动方式? [填空题]在跳远技术的发展过程中,曾经出现过 . . .等3中姿势. [判断题]一般情况下,Python语言中使用符号#表示程序中的注释.(4.5分) [论述题]请 ...

  3. anaconda怎么运行python程序_第一个python程序,从安装python环境到人生第一个py脚本运行全过程...

    文章目录 前言一.安装python运行环境 1.官网https://www.python.org下载安装包.exe 2.安装python二.python模块下载 1.配置pip环境变量 2.下载pyt ...

  4. 运行python程序ModuleNotFoundError?pip下载速度太慢?

    当运行python程序遇到ModuleNotFoundError时: 可以使用pip安装module来解决: 可是速度太慢了怎么办?可以加参数使用国内镜像来解决: 国内镜像包括: 清华:https:/ ...

  5. python编程在哪里写程序-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  6. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  7. python代码写完怎么运行-教你如何编写、保存与运行 Python 程序

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  8. python在哪里写程序和运行-如何编写和运行Python程序

    保存和运行 Python 程序的标准步骤如下: 对于 PyCharm 用户 打开 PyCharm. 以给定的文件名创建新文件. 输入案例中给出的代码. 右键并运行当前文件. 注意:每当你需要提供 命令 ...

  9. python代码怎么运行-Python程序执行原理,python程序怎么运行的?

    随着人工智能时代的来临,python成为了人们学习编程的首先语言.那么,python程序的程序的执行原理什么呢?python程序怎么运行的?我们下面来介绍下. 我们都知道,使用CC++之类的编译性语言 ...

  10. anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版

    打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢? 到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢? 为什么提示 ...

最新文章

  1. npm全局安装和本地安装和本地开发安装(npm install --g/--save/--save-dev)
  2. 计算机 连接ip,连接在Internet上的计算机都拥有IP地址。
  3. MySQL内存管理,内存分配器和操作系统
  4. Duilib教程-简单介绍
  5. LeetCode—210. 课程表 II
  6. java汉字如何通过字节传输,求助,java中怎么用字节流读写汉字
  7. Cortex-M3异常中断及向量表定义
  8. 用java有理数类包含加减乘除_用java具体代码实现分数(即有理数)四则运算
  9. RSA算法的Java实现
  10. Spark快速大数据分析——Spark的Hadoop配置(肆)
  11. python特殊字符替换
  12. QQ三国推举孝廉答题工具使用说明
  13. 怎样计算期货交易盈亏(期货交易盈利怎么算)
  14. 京东实习笔试——拍卖
  15. Android 自定义表格显示数据
  16. 吹爆系列:教科书级别的Android音视频入门进阶学习手册,学完我成功“挤进”了抖音音视频开发岗
  17. Python实战案例:旅游方面博文的数据分析
  18. C语言 求N分之一序列前N项和,C语言求m分之一序列前n项和
  19. 职场未来十大趋势,比现实更魔幻!
  20. VB小游戏设计(一):扫雷

热门文章

  1. pyhon 函数 输入输出
  2. nacos连接mysql失败_完美解决MySQL通过localhost无法连接数据库的问题
  3. PDF编辑之加密的PDF文档如何解除密码和进行编辑
  4. Python中的错误和异常
  5. 计算机操作系统pcb是什么意思,简述PCB的含义以及作用
  6. Android图片处理之Fresco初实践
  7. 凤舞丹心东方美,中华才女竞风采 ——黛兰娜杯《中华才女大赛》七月汇演
  8. 中国石油天然气股份有限公司2008年半年度报告摘要(业绩公告)
  9. SQL学习之check约束
  10. python机器学习之决策树(decision tree)