どうも。ケニー(tsujikenzo)です。このシリーズでは、2023年3月から始まりました「ノンプロ研Python中級講座1期」について、全6回でお届けします。今日は最終回の2回目です。
前回のおさらい
前回は、「卒業LT前編~はじめてのC++~」をお届けしました。
今回は、「卒業LT中編~環境変数とPath~」をお届けします。
今日のアジェンダ
- 環境変数とは
- 実行可能ファイルの動き
- VS Codeのインタープリター選択
環境変数とは
環境変数とは、WindowsのOSが使用する変数です。
コマンドプロンプトで確認してみましょう。コマンドプロンプトを起動して、以下のように変数HOGEにhogehogeを代入します。
SET HOGE=hogehoge
変数の呼び出しは、ECHOです。変数名は%で囲みます。
ECHO %HOGE%
先ほど代入した値が、出力されます。
コマンドプロンプトを終了すると、宣言した変数は無くなります。
このように、コマンドプロンプトからも環境変数を設定できますが、今回は、システムのプロパティの「環境変数」から設定していきます。
GUIでの環境変数設定
環境変数から、ユーザー環境変数の「新規」をクリックします。
変数名と変数値を入力し、OKをクリックします。(環境変数ウィンドウもOKを押して閉じます。)
コマンドプロンプトを新規に起動します。変数を呼び出すと、値が出力されます。
もし、環境変数を環境変数ウィンドウで変更したら、コマンドプロンプトを一度終了し、再起動する必要があります。
実行可能ファイルの動き
前回作成した、sample.exeファイル(Windowsアプリケーション)は、コマンドプロンプトからも起動可能です。
コマンドプロンプトを起動し、カレントディレクトリを移動し、sample.exeを実行しましょう。
また、実行する際、拡張子exeは省略可能であり、ファイル名の大文字小文字は判別していません。
標準出力にメッセージが表示され、メモ帳が起動します。(キャプチャは割愛します)
このとき、実行可能ファイルは、裏で以下の動作を行っています。
- カレントディレクトリに、ファイルが存在するか
- なければ、環境変数のユーザ環境変数とシステム環境変数のPathを、前方から見に行く
- なければ、HKLMレジストリを見に行く
Pathを見に行くと何があるのか?
環境変数ウィンドウにある、Pathを見てみましょう。2種類のPathがありますが、裏では、システム環境変数→ユーザー環境変数の順に参照(捜索)しています。
Pathの中身を見てみましょう。復習ですが、中身は、C++のコンパイラであるMinGWの本体など、特定のアプリケーションの絶対パスを設定していました。
つまり、実行可能ファイルは、実行されるときに、「Path」という環境変数を参照しに行っているのです。
コマンドプロンプトで、変数「Path」を確認してみましょう。このように、セミコロン区切りで値が格納されています。
sample.exeをどこからでも呼び出せるようにする
環境変数を開き、ユーザー環境変数の「Path」を編集します。
「新規」をクリックし、sample.exeが格納されているフォルダの絶対パスを入力します。
最後にOKをクリックして、ウィンドウを閉じます。
コマンドプロンプトを、新規に起動します。
カレントディレクトリを任意の場所に移動します。(例は、Cドライブ直下に移動)
sample.exeを実行すると、メッセージが表示され、メモ帳が起動します。
これは、まず、カレントディレクトリ(Cドライブ直下)に、sample.exeがないもんだから、環境変数のPathを参照しに行っています。
すると、「C://~略~¥はじめてのC++」という絶対パスの中に、sample.exeを見つけたので、処理が実行されました。
これを、 「PATHを通す」または「PATHが通っている」 と、言います。
VS Codeのインタープリター選択
VS Codeでファイルを実行するさい、再生ボタンを押すと「インタープリターを選択してください」という指示が出ると思います。
これは、VS Codeから、Python本体(インタープリター)に対して、Pathを通す作業です。(この作業を行っても、環境変数にPath変数は追加されません)
久しぶりにVS Codeを開くとインタープリターを選択させられるのは、Pathが保存されていないか、変更されているのでしょう(この裏は取っていません。ケニーの憶測)。
その代わり、コマンドプロンプトからPythonファイルを実行する(Day4のブログを参考にしてください)には、Python本体に対して、Pathが通っている必要があります。
通常であれば、Pythonのバージョンを使い分けたり、仮想環境を構築しなければ、Pathは一度通せば、変更することはないでしょう。
まとめ
以上で、 「卒業LT中編~環境変数とPath~」 をお届けしました。
使用するライブラリや、配布するアプリケーションによっては、Pythonのバージョンを落としたい、という状況もあるでしょう。
環境変数を理解すれば、生Pythonと、Anacondaの競合なども怖くありませんね。
ところで、「Python本体」とか「インタープリター」って言ってますが、Pythonとはなんなのでしょうか。。。
次回は、最終回で「Pythonの実行と正体」をお届けします。