Ubuntu20.04 Python開発環境を作る ~その3:VS CodeをPython IDEとして使ってみる~

 本記事では、Python IDEとしてのvscodeの基本的な使い方について説明します。Ubuntu20.04へのvscodeのインストール方法とPython IDEとしての設定方法については、前の記事で紹介しています。

Ubuntu20.04 Python開発環境を作る
 その1:pipenvで自分専用のpython実行環境を作る
 その2:VS Codeのインストール
 その3:VS CodeをPython IDEとして使ってみる(この記事)

1.プロジェクトフォルダを作成して開く

 アプリケーションは、通常、複数のプログラムファイルやデータファイルで構成します。これらのファイルを保存するフォルダを「プロジェクトフォルダ」といいます。
 まずはプロジェクトフォルダを作成します。
 プロジェクトフォルダはどこに作っても構いません。ここでは、第1回の記事で作成したpipenvの仮想環境(~/pepenv1)配下にtestpjという名前のプロジェクトフォルダを作成することにします。

プロジェクトフォルダの作成は、ターミナル(端末)アプリからmkdirコマンドを使って作成しても問題ありません。

vscode画面上部のメニューから、「ファイル」→「フォルダーを開く」を選択。

画像1

「フォルダを開く」ウィザードが表示される。
 開いたウィザードの中で、プロジェクトフォルダを作成したいパス(ここでは、python仮想環境の"pipenv1")に移動して、画面右上の新規ディレクトリ作成アイコンをクリック。

36.フォルダを開くアイコン

 ここでは、"testpj"の名前でフォルダを作成。createボタンをクリックすると、testpjフォルダが作成され、そのままtestpjに移動します。

16.testpjの作成

 testpjの中身は空っぽですが、画面右上にあるOKボタンをクリック。
「このフォルダのファイル作成者を信頼するか」みたいな警告が表示されるかもしれませんが、そのときは「信頼する」を選択。
testpjを開いた状態でvscodeの画面に戻ります。

IDEとしてvscodeを使うときは、個別のファイルを開くのではなく、プロジェクトフォルダを開いて利用するようにしましょう。

2.vscodeの画面構成

 ここで、プロジェクトフォルダを開いたときの、vscodeの画面構成について説明します(下図参照)。
 メインメニューはvscodeの画面上部に表示されます。
 画面一番左端は、アクティビティーバーとよばれるエリアで、いくつかの操作アイコンがならんでいます。
 アクティビティバーの右隣がサイドバーです。サイドバーには、アクティビティバーで選択したアクティビティの操作画面が表示されます。
 右の大きなエリアがプログラミングを編集するためのエディタ領域です。ここでプログラムの編集をします。
 画面の最下部はステータスバーです。開いたエディタで、vscodeがどのプログラミング言語のデバッグモードで動作しているかなどが表示されます。

17-2.vscode画面構成

 アクティビティバーには、開いたプロジェクトフォルダのファイルを管理する「ファイルエクスプローラ」

画像20

や、この記事の後ろで説明するvscode拡張機能管理操作

画像21

のアイコンなどが配置されています。

3.最初のプログラムファイルを作成する。

 それでは簡単なPythonプログラムを作成して動かしてみましょう。

アクティビティバーでファイルエクスプローラのアイコンをクリック。

19.ファイルエクスプローラアイコンをクリック

 サイドバーに、上記で開いたプロジェクトフォルダ(testpj)をトップとする、ファイルエクスプローラーが表示されます。testpjを開き、TESTPJの下のプロジェクトファイルを表示するエリア(青枠)で右クリック→新しいファイルの作成で"hello-world.py"のファイル名でPythonプログラムファイルを作成します。
 新しいファイルは、ファイルメニューから作成することもできます。

20.新規ファイルの作成

 エディタで".py"の拡張子のファイルを開くと、vscodeは自動でpythonデバッグモードに切り替わり、ステータスバーの右端に、"Python"と表示されます。

21.ステータsがpythonに

hello-world.pyのテキストエディタで、"hello world!!"を標準出力するプログラムを書いてみましょう。

print("hello world!!")

書き終わったらhello-world.pyを保存します。

4.Python実行環境の設定

 "hello-world.py"を実行する前に、vscodeのPythonの実行環境を選択します。ここでは、第1回の記事で作成したpipenvの仮想環境に設定しましょう。 
 エディタで".py"の拡張子のファイルを開くと、vscodeはpythonのデバッグモードで動作し始めますが、ステータスバー左端には、今利用しているpythonのインタープリタ(=pythonの実行環境)が表示されています。

画像22

 最初は、OS組み込みのインタープリタが表示されていますので、ここをクリックします。
 「Pythonインタープリタを選択」の画面がでてくるので、これを第1回の記事で作成したpipenvの仮想環境(pipenv1という名前で作成)のパスに変更します。
 パスの途中に仮想環境のディレクトリ名(ここでは"pipenv1")の文字列が含まれているので、どれを選択するかすぐにわかると思います。

24.pipenvのpython実行環境を選択

これでvscodeの設定は完了です!!!
次回以降は、仮想環境がデフォルトのインタープリタとして選択されるようになります。

5.プログラムファイルを実行する

それでは、hello-world.pyを実行してみましょう。
エディタで、実行したいプログラムファイル(hello-world.py)を表示した状態で、メニューから、「実行」→「デバッグなしで実行」をクリック。

25.プログラムの実行

画面下部の「パネル」領域にシェルのターミナルが表示されます。
無事"hello-world!!"が出力されました。

26.プログラム実行結果

6.vscodeのデバッグ機能を使ってみよう

IDEを使う最大のメリットの1つ、デバッグ機能を使ってみましょう。

"tashizan.py"のファイル名で、以下のプログラムを作成します。

#tashizan.py

if __name__ == "__main__":
   x = 5
   y = 3
   wa = tashizan(x,y)

vscodeでみてみると、5行目のtashizanの部分に黄色波線の下線がひかれてます。この黄色の波線は、警告を意味します。
マウスカーソルを下線に移動すると、警告の詳細コメントを確認することができます。

28.デバッグ:未定義の関数

これは、関数tashizanが定義されてないという警告です。
 なお、文法エラー(シンタックスエラー)は赤波線の下線で表示されます。タイプミスなどの間違いに気づきやすいですね。
 また、定義済関数のオートフィルや関数引数の定義が表示されるなど、コードが書きやすい設計がなされています。

 それでは、関数tashizanを追記してプログラムを完成させましょう。tashizan.pyを以下のように追記します。

#tashizan.py

def tashizan(a, b):
   wa = a + b
   return wa
   
if __name__ == "__main__":
   x = 5
   y = 3
   wa = tashizan(x,y)
   
   print("x =", x, "y =", y, "x + y =", wa)

完成したら、wa = tashizan(x, y)の行番号の左脇にマウスカーソルを移動し、マウスを右クリック→ブレークポイントの追加をクリック。

30.ブレークポイントを追加

行番号の左側に赤丸が表示されます。これは、ブレークポイントといって、プログラムをデバッグするときにここでプログラムの実行を停止させて変数の中身の値などの状態を確認することができます。

31.ブレークポイント

実際に使ってみましょう。
メニューから、実行→デバッグの開始

32.デバッグの開始

もし、Debug Configurationの選択画面が出てきた場合は、Python Fileを選択してください。

33.Python Fileを選択

デバッグを実行すると、ブレークポイントを設定した箇所でプログラムの実行が停止されます。

34.ブレークポイントで停止

この状態で、xやyの変数の上にマウスカーソルを移動させると、停止した行までの実行時点で変数に代入されている値を確認することができます。これもデバッグの際、とても有効です。

ブレークポイントはいくつでも設定することができます。

また、デバッグを開始すると、画面上部にどのように処理を続行するか選択できるデバッグアイコンが表示されます。デバッグアイコンを使って、変数の中身を確認しながらプログラムを1行ずつ実行したり、残りの行を実行したり、いろいろできます。

35.デバッグアイコン

一番左のアイコンは「続行」。ブレークポイントを複数設定した場合は、次のブレークポイントまで実行されます。後ろにブレークポイントが設定されてない場合はプログラムの最後まで実行されます。

左から2番目のアイコンは「ステップオーバー」。ステップオーバーは1行ずつプログラムを実行します。関数を呼び出している行を実行する際、その行を1行とみなして、呼び出した関数を実行し、次の行で停止します。上記例では、

wa = tashizan(x,y)

の行でステップオーバーすると、tashizan関数が実行され、次の行の

print("x =", x, "y =", y, "x + y =", wa)

で停止します。

左から3番目の下向き↓のアイコンは、ステップイン。
ステップインも1行ずつプログラムを実行します。関数を呼び出している行を実行する際、呼び出した関数の中に入り込んで、呼び出された関数の1行目で処理を停止します。

左から4番目の上向き↑のアイコンはステップアウト。
呼び出された関数の中をデバッグ中にこのアイコンをクリックすると、関数の残りの部分を実行し、関数の呼び出し元に戻ったところでプログラムの実行を停止します。

左から5番目のアイコンは、再起動。プログラムを最初から実行しなおします。

一番右のアイコンは停止。デバッグをやめてプログラムを停止します。間違いの原因がわかってプログラムを修正するときはこのボタンです。

 なお、デバッグを開始すると、アクティビティバーで自動的にデバッグアイコンが選択され、サイドバーにより詳しいプログラムの実行状況が表示されます。こちらの方はプログラミングの勉強と並行して覚えていくと良いと思います。この記事では説明を割愛します。

 便利なデバッグ機能を駆使して、実用的なPythonアプリケーション作成にチャレンジしてみましょう!!


この記事が気に入ったらサポートをしてみませんか?