UNISIA-SE Tech Blog

気まぐれお勉強日記

[Python] 対話モード (インタプリタ) の使用方法

1. 前提条件


このページでは、対話モードについて記載する。
※ pipが使用できる環境であること。

以下、必要な前提知識。

▼ Pythonがインストールされていること。
[4] Python、Djangoインストール + Django起動確認

※ 本ページでは、Python3.6をインストールしている前提で記載している。
(Python2系は2020年でサポートが終了。)

2. 対話モードの使用例


▼ Pythonのバージョン問わず、下記コマンドを実行することで 対話モード が起動する。

$ python -V    # バージョン確認
 Python 3.6.4
$ python # 対話モード起動 (マイナーバージョンまでを指定しても可)
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>>

対話モードでは、入力待ち状態を表す「>>>」の後に直接 Pythonコードを書いて実行することができる。

▼ 対話モードの使用例
例えば、コーディング中、sys.path を確認したい場合は、実際にコーディングするときと同じ要領で、下記のように sys をインポートし、sys.path の一覧を確認するコードを入力することで、結果が表示される。

$ python # 対話モード起動 (マイナーバージョンまで指定した python3.6 でも同じ動作)
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import sys
 >>> sys.path
 ['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', 
 '/var/www/vops/lib64/python3.6/site-packages','/var/www/vops/lib/python3.6/site-packages']
 >>>

▼ 対話モードの終了
「Ctrl」+「D」押下または、 exit()を実行する。

exit()の実行例

$ python
 Python 3.6.4 (default, Dec 19 2017, 14:48:12)
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> exit()

3. PYTHONSTARTUPで初期スクリプトを設定する


対話モードでは、環境変数「PYTHONSTARTUP」に指定したスクリプトを最初に実行する。

以下、簡単な例として
対話モードで、sys.path のみで実行可能となるように import sys のみ PYTHONSTARTUP の指定ファイル(.pythonstartup)に記載する手順。

(1) まずは、対話モードで sys.path のみ実行する。

$ python
 Python 3.6.4 (default, Dec 19 2017, 14:48:12)
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> sys.path
 Traceback (most recent call last):
   File "", line 1, in 
 NameError: name 'sys' is not defined
 >>>

上記、sys をインポートしていないので当然エラーが発生する。

(2) 続いて、home ディレクトりに .pythonstartup を作成し、環境変数「PYTHONSTARTUP」.pythonstartup を設定する。
※ スクリプトには、import sys のみ記載する。

$ touch  ~/.pythonstartup    # 空ファイル新規作成
$ vim  ~/.pythonstartup    # import sys を追記
 import sys
$ export PYTHONSTARTUP=~/.pythonstartup    #    環境変数「PYTHONSTARTUP」に .pythonstartup を設定

(3) 再度(2) を実行する。

$ python
 Python 3.6.4 (default, Dec 19 2017, 14:48:12)
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> sys.path
 ['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', 
 '/var/www/vops/lib64/python3.6/site-packages', '/var/www/vops/lib/python3.6/site-packages']
 >>>

上記 sys.path のみで一覧が表示できた。

この例は極端だが、ある特定のコードが事前に必要な場合は、この要領で PYTHONSTARTUPを設定 しておくと手間が省ける。

4. その他、対話モードに関する補足


▼ 最後に実行したコードを再度実行する
最後に実行したコードは変数 _(アンダーバー) に格納されているため _(アンダーバー) を実行することで再実行できる。

$ python
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import sys
 >>> sys.path
 ['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', 
 '/var/www/vops/lib64/python3.6/site-packages', '/var/www/vops/lib/python3.6/site-packages']
 >>> _
 ['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', 
 '/var/www/vops/lib64/python3.6/site-packages', '/var/www/vops/lib/python3.6/site-packages']
 >>>

▼ 任意のファイルを事前に実行させる
「-i」オプションとファイルパスを指定すると、対話モードに入る直前に任意のファイルの実行させることができる。

$ python -i example.py

▼「IPython」の導入
上記で紹介した対話モードをデバッガーのように利用できる IPython というパッケージもある。
pipの下記コマンドでインストール可能。

$ pip install ipython

ここでは詳しく説明ないが IPython をインストールすると TABキーでの補完シェルコマンドの使用pythonデバッガー(pdb)との連携 ができるようになる。

以上。



Copyright UNISIA-SE All Rights Reserved.
s-hama@unisia-se.jp