Pythonスクリプトが他のpythonスクリプトにインポートされると、.pycスクリプトが作成されることを知っています。pycファイルを作成する他の方法はありますか? Linux bashターミナルを使用していますか?
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.pyのif __name__ == '__main__':
ブロックを実行しないためです。 。
次のコマンドを使用します。
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ファイルも作成します。コマンドライン引数としてファイル名を使用できます