三種の神器
ここでいう三種の神器とは、以下の三つです。
- git bash
- miniconda
- Visual Studio Code (以後、VSCと略します)
最初の二つのインストールは私の記事たちをみていただくか、どこかを調べてください。
VSCについては、いわゆるインストーラーをとってダブルクリック、はいはいはい、でインストールしてもいいですが、いったいどこに何が入ったのか無関心になりますので、以下のようにするのが私の常法です。
Zipファイルにしてあるものを取って展開。展開されたフォルダを自分のhome directoryの下のどこか(たとえばlocalという名前のフォルダ)に置く。置いたフォルダの中にあるcode.exeを一度立ち上げて、タスクバーに出たアイコンをpinする。
ちなみに、code.exeがあるdirectoryにpathを通しておくと(👈コマンドライフ1をみてください)コマンドラインからcode <開きたいフォルダへのpath>と打って立ち上げることができて便利です。(”<“と”>”は打たないでくださいね)
さて、ここからです。神器の奉納(別名インストール)がすんだところで我に返ります。え?私はpythonを使えるようにしたかったのに、この神器たちは何?なんで3つ?pythonはどこ?
ExcelならExcelというアプリケーションを開いたり、Excelで作ったファイルを(Excelで開いて)使うことができるのでわかりやすいのですが、pythonはそれ自体を開いて何かをするものではありません。では、どうやって使うのでしょうか。
この記事では、いくつかの図を使ってpythonとその周辺の景色を説明していきます。以下の登場人物とキーワードを理解してもらいつつ、だから三種の神器が必要なのか、と気が付いてもらうのが狙いです。
- 登場人物
- python
- bash
- キーワード
- command line interpreter
- stdin, stdout
- shell
それでは始めましょう。
説明図1:pythonの二つの意味
Pythonには二つの意味があります。一つ目はinterpreter、通訳としての意味です。コンピューターの内部では0と1だけを使った言葉が飛び交います。残念ながら、私たちはこの言葉をうまく話すことができません。そこで、私たちが行いたいことをpythonに通訳してもらいながらコンピューターに指令を出すというからくりです。
指令は、pythonが理解してくれることばで表現する必要があります。そのことばのことを、これまたpythonと言います。これが二つ目の意味です。言語名としてのpython。ややこしいな、いや、ややこしくありません。日本人とその人たちが話している言語の両方をJapaneseというのと同じです。Pythonとそれが理解する言語、それがpythonです。
説明図2:bashは総合受付の取次、案内人
Pythonは座敷の奥に鎮座します。ショートカットをダブルクリックとか、スタートメニューから選ぶ、という方法で呼び出すことはしません。ではどうするか。Pythonへのアクセスは、一つ目の神器、git-bashを通じて行います。git-bashは、いわゆるterminal emulator、コマンドをポチポチ打ち込んでコンピューターに指令を伝えるためのウインドウを提供します。このウインドウのことをcommand line interpreter (CLI)とか、単にcommand lineと呼びます。文字を通じて操作するインターフェースなので、CUI (Character User Interface)です。これに対し、カーソルをマウスで動かしてアイコンやウインドウを操作するUIはGUI (Graphical User Interface)とよばれます。
git-bashが提供するのはterminal emulatorだけではありません。Command lineで使う各種コマンドがついてくるとともに、総合受付の人気者、bashを連れてきます。Bashはshellと呼ばれるプログラムで、与えられたコマンドを実行したり、取り次いだり、そういう役割をcommand lineの裏で行ってくれる力持ちです(ちなみにcdやpwdなどはbash自体に組み込まれたコマンドです)。Shellがなければcommand lineは役立たずです。Command lineはshellへのアクセス窓口とも言えます。
座敷にいるpythonを呼ぶには、command lineからpythonと打ち込みます。これを見たbashが、へいへい、pythonさんすね、その方なら座敷の左から3つ目の部屋、押入れの右側の下の段におられます、ってな具合に取り次いでくれるわけです。
Pythonは神器の二つ目、minicondaが連れてきます。Minicondaのインストーラーが、どこにインストールするかを聞いてくるステップがありますが、あそこで座敷の部屋を指定していたわけです。Pythonへのpathを通す、とは、どの部屋にpythonが入ったのかを、案内人bashが参照できるリストに登録することにあたります。
Command lineへのコマンドの打ち込みは、キーボードから行いますが、この入力ルートをstandard input、略してSTDINと呼びます。コンピューターへの標準入力は、キーボードってわけです。逆方向の情報の流れ、コンピューターからの出力は、command line上に表示されるのが標準で、これをstandard output、略してSTDOUTと呼びます。いずれにせよ、INもOUTも標準ではcommand line上を通るわけです。
説明図3(二つ):pythonに話しかける2つの方法
Pythonに話しかける方法には次の二つがあります。
- interactive shellでチャット風に直接会話する
- 話したいことをpythonで書いて(もうわかりますね、この意味)ファイルに保存し、それをcommand lineから渡す
ごく簡単な内容であればお手軽interactive shellから、そうでなければ伝えたい内容をファイルに書いたものを用意して、それを渡します。そのファイルの内容、あるいはそのファイルのことをpythonコードとか、pythonスクリプトと呼び、拡張子には.pyを付けてpython(語)で書かれたものであることを表現します。
ファイルに書いて渡す利点は、長い内容を伝えられることのほかに、繰り返し使えることです。他の人にも使ってもらえますし、間違いがあったりしても確認や追跡が可能ですし、少し変更して再利用することもできます。pythonコードを書くのに使う道具が、三種の神器の三つ目、VSCです。VSCはコードを書くことに特化されたアプリケーションで、数々のお手伝い機能を追加したり、複数のファイルを行ったり来たりしながら編集するための機能が満載です。VSCはpythonに特化されたものではないので、ほかの言語のコードを書くのにも使われます。
interactive shellで直接話す
interactive shellは、小さな会話をするのに便利です。あれはどう使うんだったかな、とか、ちょっとしたことをpythonに直接聞くことができます。うろ覚えだったことの確認に使えます。
使い方は簡単で、command lineからpythonとだけ打ってenter。interactive shellに突入します。>>>で始まるのがあなたの会話入力行です。python語で何かを書いてenter。即座にpythonがそれに対する実行結果や、エラーがあればその内容を教えてくれます。
exit()でinteractive shellをぬけることができます。(最初のうち忘れがち)
伝えたいことをファイルに書いて渡す
VSCで伝えたいことをpython(語)で書きます。ファイル名には.pyを付けてpythonで書かれたファイルであることの目印とします。
渡し方は簡単で、python に続いてスペースを一つ、そのあと渡したいファイルへのpathを書いてenter。pythonの後にファイル名、という説明を見ることがありますが、それはファイルがcurrent directoryにある場合の話です。より汎用的な理解としては、ファイルへのpathです。どこにあるか、をpythonに伝えるわけです。Current directoryにあるファイルpathにはあえて./を付けるくせを付けるといいかもしれません。
神器おさらい
git bash
ほんらい、gitを始めるためのものでもあるが、terminal emulatorとbash、数々の基本コマンドを導入してくれる。
miniconda
envとパッケージ管理ができるcondaコマンドがついたpython導入キット。本格的にpythonを使い始めると、作業内容に応じて必要なライブラリを導入して開発を行うことになります。この際、environmentと呼ばれる、個別の作業環境を目的に応じて作り、その中で作業することになります。condaはそのための環境構築と、ライブラリ導入をうまく管理してくれるコマンドです。Pythonのvenv + pipでも同様のことができますが、これまでに作ったenv一覧を簡単に見たりすることができるなど、私はcondaが気に入っています。
VSC
Pythonコードを書くためのコードエディタ。コードを書く上で便利な数々のアシスト機能を追加していくことができる。gitやsshに関する機能も組み込んで使えるなど、本当に便利です。
おわりに
いかがでしたか?Pythonインストールの少し向こう側が見えましたか?ここからが始まりです。上で書いた通り、pythonは言語です。使えば使うほど、腕前が上がっていきます。どんどん書いて、ほかの人のものもどんどん読んで、上手になりましょう。