Python篇之编译py文件为pyc文件的方法总结

一、前言
一般来说,当我们在发布系统的时候,希望上线的代码是安全可靠的,不希望别人能看到源代码,通常都会先提前编译好,然后进行发布,在python中,编译好的代码格式为 .pyc 文件

常见的python代码形式有如下几种:
.py  --python的源代码文件,程序内容可以用文本编辑器直接打开,代码可视

.pyc  – .py文件经过编译后产生的字节码文件,是二进制文件

.pyo  – .py文件经过优化后的执行文件

.pyd  – python的动态链接库文件

二、编译python代码为pyc文件的所应用的模块
1、python内置的py_compile模块可以把py文件编译为pyc文件或pyo文件;
方式一:py脚本形式:

# -*- coding: utf-8 -*-
#python 27
#python之模块py_compile用法(将py文件转换为pyc文件);二进制文件,是由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

2、内置的compileall模块可以把整个目录中的py文件编译为pyc或pyo文件;
方式一:py脚本形式:
2.1、 仅编译目录:


import compileall

compileall.compile_dir('s1')

2.2、过滤文件,过滤掉不需要当前目录下不需要编译的文件,可利用正则表达式实现

import compileall
import re

compileall.compile_dir('s1',rx=re.compile(r'/\.txt'))

2.3、如果需要递归遍历目录,则需要添加参数。maxlevels
当maxlevels = 0,不需要递归。
当maxlevels = 1,需要递归。

import compileall
import re

compileall.compile_dir('s1', maxlevels=0, rx=re.compile(r'/\.txt'))

2.4、仅选择需要编译的路径

import compileall
import sys

sys.path[:] = ['s1', 's2']
print 'sys.path =', sys.path
compileall.compile_path()

方式二:命令行模式

python -m compileall /dir/  # 生成目录下所有py文件对应的pyc文件

你可能感兴趣的:(Python,python,pyc,compile)