一般来说,当我们在发布系统的时候,希望上线的代码是安全可靠的,不希望别人能看到源代码,通常都会先提前编译好,然后进行发布,在python中,编译好的代码格式为 .pyc 文件
常见的python代码形式有如下几种:
.py --python的源代码文件,程序内容可以用文本编辑器直接打开,代码可视
.pyc – .py文件经过编译后产生的字节码文件,是二进制文件
.pyo – .py文件经过优化后的执行文件
.pyd – python的动态链接库文件
编译python代码为pyc文件的所应用的模块
1、python内置的py_compile模块可以把py文件编译为pyc文件或pyo文件;
方式一:py脚本形式
#办法一: import py_compile #加r前缀进行转义 py_compile.compile(r'D:\test.py')#py文件完整的路径.
方式二:命令行形式:
python -m py_compile xxx.py # 注: 其中-m参数 就相当于py脚本中的import # 这里的 -m py_compile 相当于上面的 import py_compile
内置的compileall模块可以把整个目录中的py文件编译为pyc或pyo文件;
方式一:py脚本形式:
仅编译目录:
import compileall compileall.compile_dir('s1')
过滤文件,过滤掉不需要当前目录下不需要编译的文件,可利用正则表达式实现
import compileall import re compileall.compile_dir('s1',rx=re.compile(r'/\.txt'))
如果需要递归遍历目录,则需要添加参数。
当maxlevels = 0,不需要递归。
当maxlevels = 1,需要递归。
import compileall import re compileall.compile_dir('s1', maxlevels=0, rx=re.compile(r'/\.txt'))
仅选择需要编译的路径
import compileall import sys sys.path[:] = ['s1', 's2'] print 'sys.path =', sys.path compileall.compile_path()
方式二:命令行模式
python -m compileall /dir/ # 生成目录下所有py文件对应的pyc文件