9

Python スクリプトが他の Python スクリプトにインポートされると、.pyc スクリプトが作成されることを知っています。Linux bash ターミナルを使用して .pyc ファイルを作成する他の方法はありますか?

4

2 に答える 2

9

次のコマンドを使用します。

python -m compileall <your_script.py>

your_script.pycこれにより、同じディレクトリにファイルが作成されます。

次のようにディレクトリを渡すこともできます。

python -m compileall <directory>

これにより、ディレクトリ内のすべての .py ファイルに対して .pyc ファイルが作成されます

別の方法は、次のように別のスクリプトを作成することです

import py_compile
py_compile.compile("your_script.py")

また、your_script.pyc ファイルも作成します。コマンドライン引数としてファイル名を取ることができます

于 2015-09-15T06:12:06.113 に答える
7

モジュールを使用できpy_compileます。コマンドラインから実行します (-mオプション):

このモジュールをスクリプトとして実行すると、コマンド ラインで指定されたすべてのファイルをコンパイルするためにmain()が使用されます。

例:

$ tree
.
└── script.py

0 directories, 1 file
$ python3 -mpy_compile script.py
$ tree
.
├── __pycache__
│   └── script.cpython-34.pyc
└── script.py

1 directory, 2 files

compileall同様の機能を提供します。それを使用するには、次のようにします

$ python3 -m compileall ...

... 再帰的にトラバースされた、コンパイルするファイルまたはソース ファイルを含むディレクトリはどこにありますか。


もう 1 つのオプションは、モジュールをインポートすることです。

$ tree
.
├── module.py
├── __pycache__
│   └── script.cpython-34.pyc
└── script.py

1 directory, 3 files
$ python3 -c 'import module'
$ tree
.
├── module.py
├── __pycache__
│   ├── module.cpython-34.pyc
│   └── script.cpython-34.pyc
└── script.py

1 directory, 4 files

-c 'import module'前者はmodule.py内のブロックを-m module実行しないため、 とは異なります。if __name__ == '__main__':

于 2015-09-15T05:48:03.217 に答える