zoukankan      html  css  js  c++  java
  • Python基础——运行机理

    Python解释器

    从Python这门编程语言的实现上来讲,Python是一个名为解释器的软件包,包含:一个解释器 和 支持的库

    解释器又有不同版本:CPython、Jython、IronPython

    理解Python的运行机理需要从程序员 以及 解释器两个角度出发,见下图

    编译:

    这里说的编译不同于C/C++下面的编译,那个涉及到4个过程。参考:编译 

    python的编译只是简单的翻译,把.py源码翻译成字节码。

    字节码:

    字节码是源代码底层的,与平台无关的表现形式。

    之前了解过python底层的人,可能很直观认为字节码就是.pyc,这只是字节码的一种。字节码到底是什么取决于解释器的版本。

    对于CPython他的字节码就是.pyc,然后字节码发送给(PVM,Python Virtual Machine )Python虚拟机。

    对于Jython,.py源码编译成Java字节码,然后发送给Java虚拟机(JVM)

    PVM:

    对于CPython来说是PVM

    对于Jython来说是JVM

    不管是那种虚拟机,其本质就是一个迭代运行字节码指令的一个大循环。

    冻结二进制文件

    程序员接触的是python源码,源码需要运行在解释器下。但是对于用户,他是不会搭建这种运行环境的,他只需要傻瓜式操作,直接安装,安装完毕后能运行就万事大吉。

    因此,一个Python项目,将源码发给个客户是不现实的。这时候就是冻结二进制文件发挥作用的时候了

    冻结二进制文件本质上是将程序字节码,PVM(解释器)以及其他支持库捆绑成一个单独的文件包,这个文件包是一个单独的可执行的二进制程序。这个文件包可以很方便的发给客户,即使客户电脑上没有安装python。客户拿到文件包可以直接安装,根本感觉不出来这是用什么语言写的。

    生成冻结二至文件的工具

    py2exe:Windows下使用

    PyInstaller:Linux及UNIX上使用,能够生成自安装的二进制文件

    freeze:最初始的版本

     

     

     

  • 相关阅读:
    Building a Space Station POJ
    Networking POJ
    POJ 1251 Jungle Roads
    CodeForces
    CodeForces
    kuangbin专题 专题一 简单搜索 POJ 1426 Find The Multiple
    The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
    The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
    The Preliminary Contest for ICPC Asia Xuzhou 2019 E. XKC's basketball team
    robotparser (File Formats) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9644104.html
Copyright © 2011-2022 走看看