Pythonには大きく分けて、「インタプリタ」、「スクリプト」、「コンパイル」の3つの実行方法があります。
それぞれの特徴とどんな時に利用するか紹介したいと思います。
インタプリタ実行
まずはインタプリタの実行方法です。
これは非常に簡単でpythonを起動して、コマンドを逐次解釈させてプログラムを動かします。
下がインタプリタの「Hello World」です。
# python
Python 3.6.5 (default, Mar 30 2018, 22:56:23)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type help, copyright, credits or license for more information.
>>>
>>> print('Hello World!')
Hello World!
>>>
6行目でprint()関数を呼び出し、7行目で直ぐに実行結果が返ってきています。
スクリプト実行
スクリプト実行とは、テキストファイルにPythonのコードを書き、pythonに読み込ませて実行させます。
下が「Hello World」のスクリプトです。
#!/usr/bin/python
# -*- coding: utf-8 -*-
print('Hello World!')
exit()
1行目の「!/usr/bin/python」で何のバイナリで実行するか指定し、 2行目の「 –– coding: utf-8 ––」で文字コードを指定します。 下が実行結果です。
# python helloWorld.py
Hello World!
# ls -l helloWorld.py
-rwxr-xr-x. 1 root root 73 Jun 21 23:32 helloWorld.py
# ./helloWorld.py
Hello World!
1行目の実行はpythonにスクリプトファイルを読み込ませて実行します。
実行権限があれば、5行目のようにShellのように実行することも可能です
コンパイル実行
Pythonのコンパイルは「バイトコンパイル」のことを指します。
バイトコンパイルを行うと、pythonファイルが機械語で翻訳されるため実行速度が速くなるケースがあります。
下がバイトコンパイル時の基本構文になります。
python -m compileall <対象ファイル>
コンパイルすると「pycace」ディレクトリに「.pyc」ファイルが作成されています。
実際にコンパイルするサンプルコードになります。
#!/usr/bin/python
# -*- coding: utf-8 -*-
print('Hello World!')
exit()
下がコンパイルとファイルの実行結果です。
# python -m compileall helloWorld.py
Compiling 'helloWorld.py'...
# ls -l
total 4
-rwxr-xr-x. 1 root root 107 Jun 22 00:00 helloWorld.py
drwxr-xr-x. 2 root root 38 Jun 22 00:14 __pycache__
# cd __pycache__/
# ls
helloWorld.cpython-36.pyc
[root@v133-18-196-86 __pycache__]# python helloWorld.cpython-36.pyc
Hello World!
その他、Windows環境の実行ファイル「.exe」やMac環境の実行ファイル「.app」に変換させることもできます。
実行ファイル形式に変更しておくことで、pythonが入っていない環境でもpythonのプログラムを動かせます。