Python是一门能快速开发的解释型语言
Python和Java的解释方式对比
Java:源代码 -> 编译成class -> Jvm解释运行
Python:源代码 -> Python解释器解释运行
事实上,Python和Java的解释方式是相同的,只是我们表面上看Python是直接解释源代码,而实际上python解释器只会加载字节码。细心的小伙伴肯定发现了这一点,当我们import某个模块时,总是会在模块所在的目录创建一个__pycache__目录,里面存放着被加载模块的字节码文件
编译源代码有以下作用:
源代码保护(算法保护)
防止用户篡改源代码解释器加载代码速度加快
Python的几种文件类型
py:Python控制台程序的源代码文件
pyw:Python带用户界面的源代码文件
pyx:Python包源文件
pyc:Python字节码文件
pyo:Python优化后的字节码文件
pyd:Python的库文件(Python版DLL)、在Linux上是so文件
pyc和pyo的生成方法
pyc的作用是用来跨平台使用的,和Java中的Class文件类似。pyc文件是一种字节码文件,可以加快Python解释器的加载速度,当然也可以用来做简单的防源码泄露保护。
pyo则是优化过后的字节码文件,不过pyo更像编译型语言里的中间文件。
我们可以通过Python提供的py_compile模块来进行源代码的编译。
py_compile模块只提供3个方法,分别是有关编译异常PyCom