py_compile模塊提供一個函數,用於從源文件生成字節碼文件,以及在將模塊源文件作為腳本調用時使用的另一個函數。
雖然並不經常需要,但是在安裝用於共享使用的模塊時,這個函數非常有用,特別是如果某些用戶可能沒有權限在包含源代碼的目錄中編寫字節碼緩存文件的話。
源代碼不多,如下

>>> import py_compile >>> dir(py_compile) ['PyCompileError', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'compile', 'importlib', 'main', 'os', 'sys', 'traceback']
1.py_compile.compile(file, cfile=None, dfile=None, doraise=False, optimize=-1)
將源文件編譯為字節碼並寫出字節碼緩存文件。源代碼是從名為file的文件加載的。字節碼被寫入cfile, cfile默認為file + 'c'(如果在當前解釋器中啟用了優化,則為'o')。如果指定了dfile,它將在錯誤消息中用作源文件的名稱,而不是文件。如果doraise是真的,那么在編譯文件時遇到錯誤時將引發PyCompileError。
舉例:

>>> py_compile.compile('ganiner.py') '__pycache__\\ganiner.cpython-36.pyc'
還可以使用cmd命令操作

python -m py_compile ****.py #跟隨完整路徑 -m 相當於腳本中的import
2.py_compile.main(args=None)
編譯幾個源文件。在args中(如果沒有指定args,則在命令行中)命名的文件將被編譯,並以正常方式緩存生成的字節碼。此函數不搜索目錄結構以定位源文件;它只編譯顯式命名的文件。如果“-”是args中的唯一參數,那么文件列表將從標准輸入中獲取。
reference:https://docs.python.org/3.7/library/py_compile.html