compileall — 字节编译源文件

优质
小牛编辑
129浏览
2023-12-01

Compiling One Directory

# compileall_compile_dir.py
import compileall
import glob


def show(title):
    print(title)
    for filename in glob.glob('examples/**',
                              recursive=True):
        print('  {}'.format(filename))
    print()


show('Before')

compileall.compile_dir('examples')

show('\nAfter')

Ignoring Files

# compileall_exclude_dirs.py
import compileall
import re

compileall.compile_dir(
    'examples',
    rx=re.compile(r'/subdir'),
)
# compileall_recursion_depth.py
import compileall
import re

compileall.compile_dir(
    'examples',
    maxlevels=0,
)

Compiling sys.path

# compileall_path.py
import compileall
import sys

sys.path[:] = ['examples', 'notthere']
print('sys.path =', sys.path)
compileall.compile_path()

Compiling Individual Files

# compileall_compile_file.py
import compileall
import glob


def show(title):
    print(title)
    for filename in glob.glob('examples/**',
                              recursive=True):
        print('  {}'.format(filename))
    print()


show('Before')

compileall.compile_file('examples/a.py')

show('\nAfter')