字節碼在Python運行時被加載並由虛擬機解釋,它是一段代碼,讀取字節碼中的每條指令並執行任何指定的操作。
字節碼在首次導入python模塊時,或者源比當前編譯的文件晚時,卷與.py文件相同的目錄。下次運行程序時,Python 解釋器將使用此文件跳過編譯步驟。
運行腳本不被視為 import ,不會有 .pyc 文件生成。例如,讓我們編寫一個腳本文件 abc.py, 來導入另一個模塊 xyz.py。 現在運行文件abc.py ,會生成xyz .pyc ,因為xyz是導入的,但是abc.pyc 不會是因為沒有導入abc.py 。
但是有內置的模塊和命令py_compile 和compileall 這使得創建 pyc 文件更容易。
- 使用 py_compile.compile :py_compile 模塊可以手動編譯任何模塊。一種方法是交互使用此模塊中的 py_compile.compile 函數:
> > >導入 py_compile > > > py_compile.compile (`abc.py`)
這會將 .pyc 寫入與 abc.py 相同的位置。
- 使用 py_compile。 main() :同時編譯多個文件。
> > >導入 py_compile > > > py_compile.main([`File1.py`,`File2.py`,`File3.py`])
- 使用compileall.compile_dir()函數: 編譯提供的目錄中存在的每個 python 文件。
> > >導入編譯器> > > compileall.compile_dir (directoryname)
- 在終端使用py_compile :
$ python -m py_compile File1.py File2.py File3.py ...
或者交互編譯文件
$ python -m py_compile - File1.py File2.py File3.py. ... ...
- 在終端中使用 compileall :此命令將自動遞歸導航到子目錄並為其找到的所有 python 文件創建 .pyc 文件。
$ python -m compileall
注意。 compileall 和 py_compile 模塊是 python 標準庫的一部分,所以你不需要安裝任何額外的東西來使用它。
鏈接:
1。 https://docs.python.org/3/library/py_compile .html
2. https://docs.python.org/2/library/compileall .html
3. Effbot
本文由 Shubham Bansal 提供。如果你是 Python.Engineering 並且想投稿,你也可以使用 contribute.python.engineering 寫一篇文章或發表一篇文章貢獻@python.engineering。在 Python.Engineering 主頁上查看您的文章並幫助其他極客。