web-dev-qa-db-ja.com

Pythonスクリプトから.pycファイルを作成する方法

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

8
MikhilMC

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 ...

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


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

$ 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'-m moduleとは異なります。前者は、module.pyif __name__ == '__main__':ブロックを実行しないためです。 。

6
vaultah

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

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ファイルも作成します。コマンドライン引数としてファイル名を使用できます

8
User007