-- TOC --
对,Python代码在执行之前,也是需要先编译的,不过是编译成Python特有的bytecode。
python作为一种解释执行的高级语言,在执行之前,是无需显式地编译的。Python解释器会在代码载入的时候,自动将python源码编译成python的byte code,然后执行。这样做的好处是,如果某个模块的源代码没有变化,下次载入的时候,就会加快速度。注意:只是加快载入的速度,而不是加快执行的速度!
我们常常见到的__pycache__
目录,里面存放的就是编译成byte code之后的python代码。这个目录可以随意删除!
因此,python还是有编译这个概念的,只是一般情况下,我们用不到!一般情况下,编译的过程被python隐藏并自动化了。同时,我们也可以使用python标准库里的py_compile
模块和compileall
模块,来显式地编译python代码,得到.pyc或者.pyo文件(使用python -O优化编译)。如果只发布编译后的python byte code,可以起到适当的保密源代码的作用!
>>> import py_compile
>>> py_compile.compile('test.py')
或者:
$ python3 -m py_compile test.py
>>> import compileall
>>> compileall.compile_dir('../src')
或者:
$ python3 -m compileall ../src
本文链接:https://cs.pynote.net/sf/python/202206131/
-- EOF --
-- MORE --