Python源代码的编译的具体方案应用描述


在计算机语言中Python源代码一般的情况下是不进行编译的,只是通过几个文件就能运用的,以下的文章主要是通过Python源代码的相关代码来具体描述Python源代码的编译是如何进行的。

我们一般使用这样的命令运行一个python程序:

  1. C:\> python im.py 

其中,im.py文件的内容是:

  1. #!/usr/bin/env python  
  2. import mymodule  
  3. mymodule.say(”hello”)   

执行这一命令后,Python解释器其实并不一定会读入mymodule.py文件,它会尝试读取mymodule.pyc文件或者mymodule.pyo文件。如果都失败了,或者mymodule.py文件比mymodule.pyc/mymodule.pyo新,才转而读入mymodule.py文件。

Python只懂得解释执行字节码,所以mymodule.py文件读入后第一件事就是先进行编译。编译的结果会被尝试保存到mymodule.pyc文件中。等一下会讨论如何控制Python的编译过程。

虽然与C++/Java这样的静态语言一样,采用了编译(compile)这个术语,实际情况还是有所不同的。首先,最明显的一点,Python源代码编译的最终结果不是机器码,而是字节码。Python的编译实际上主要是进行文法分析,生成一个抽象语法树,然后转储成字节码形式了事。

  • python语法入门中导入import与from时的代
  • Python 中文乱码问题的分析的具体方案介
  • python 编程语言在操作文件编码格式的应
  • Python安装配置的具体步骤的相关介绍
  • Python 配置文件的实际应用解析

从上面的介绍可以发现Python的编译与C++相去甚远。不过倒与Java有些相像,因为它们都生成字节码。凭良心说,Java的编译过程比Python先进很多。Java的解释器在执行Java字节码的时候,会使用JIT,将循环操作等热点转化成为机器码。所以有时候Java的性能能够达到接近C++的级别。

Python缺少JIT并非故意所为,而是缺少人力资源。现在已经有一个pysco的外部模块,据说能大大提高Python代码的速度,不过这个模块还没有进入Python的官方代码。

以上的文章就是对Python源代码的编译的实际操作步骤的部分介绍。

评论关闭