Pythonの環境構築 (Windows11版)

いくつかの方針が考えられるが、下記の導入を推奨とする。

  • Windowsターミナル

  • Windows Subsystem for Linux2(WSL2)

Note

授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。 とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。

Windowsターミナルの導入

ターミナルとは、CUI(Character User Interface)、つまり
コマンドなどの文字列のみを用いてコンピュータを操作する環境を指す言葉です。

CUIに対して、普段我々が使っているポインタやウィンドウなどは
GUI(Graphical User Interface)に相当します。

Windows Terminalは、2019年にマイクロソフトがリリースしたターミナルで
コマンドプロンプトやPowerShellといったWindows独自のCUIに加えて
後述のWSLを統合的に扱うことができる環境となっています。

Windows11以降標準で入っているのでWindowsボタンで 開くメニューから、「ターミナル」「terminal」などと検索すると出てくる。

開く際に右クリックすると管理者権限で開く事もできる(WSLのインストール時に必要)。

WSL2の導入

オペレーティングシステム(OS)の源流を遡ると、大まかには2つに大別される。
1つがUnix系で歴史が古い。そしてもう1つはお使いのWindowsである。

Unixはあるところで枝分かれし、LinuxやMac OSなどもUnix系に含まれる。
サーバー用途のマシンや、スパコンなどの計算機環境では基本的にLinuxがOSとして採用されている。
コンピュータの”計算機”としての側面や歴史的経緯から
プログラミング言語・開発環境などもUnix/Linuxとともに発展してきた部分が大きい。

一方でWindowsは、一般家庭でのコンピュータの需要拡大とともに独自の進化を遂げてきた。

Windowsユーザーが、プログラミング環境の構築やLinux-likeな作業をしたい場合
方法は幾つかあるが最近だとWindows Subsystem for Linux (通称WSL)を使うのが
最も簡単かつ安全な方法の1つとされている。

この授業ではLinuxの中のUbuntuというディストリビューションを用意して使うことにしよう。

  • 手順1. WSLと仮想マシンプラットフォームの有効化

    スタートメニューから「コントロールパネル」を検索して開く

    コントロールパネルの[プログラム]>[Windowsの機能の有効化または無効化] を選択し

    • 「Linux用Windowsサブシステム」

    • 「仮想マシン プラットフォーム」

    の2つにチェックを入れて有効化する(再起動が必要)。
    その際、他は触らないこと。もし誤ってチェックをしたり外したりしてしまった場合は一度キャンセルを押してやり直そう。

  • 手順2. Linuxカーネル更新プログラムの適用

    このページの手順4にあるリンクから 「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をクリックし、 ダウンロードしたファイルを実行する。 Next→Windowsシステム側の警告「はい」を選択→Finishで完了する。

  • 手順3. WSLのバージョンの確認

    Windows Terminal上で

    wsl -l -v
    

    と打ち込んでEnterを押すと、WSLのバージョンが表示される。 もしもバージョンが1であれば、WSL2への変更が推奨される。

    参考リンク

  • 手順4. Windows TerminalからWSLのインストール

    スタートメニューからterminalなどと打ち込んで
    ターミナルの上で右クリックして[管理者として実行]する
    このアプリがデバイスに変更を加えることを許可しますかというポップアップが出た場合、はいを選択すれば良い。

    次にターミナルに

    wsl --install -d Ubuntu
    

    と打ちEnterを押すことで、Ubuntuのインストールが始まる。

  • 手順5. Ubuntuの起動

    Ubuntuのウィンドウが開く※ので
    指示(Press any key to continue…)に従って適当なキーを押す。

    ※ウィンドウが開いたときにerror: 0x800701bcが発生している場合は、手順2→4を再度行ってみよう。 もしもそれでも解決しない場合は、教員に尋ねること。

  • 手順6. Ubuntuの初期設定

    しばらくするとEnter new UNIX username:
    とLinuxシステム用のusernameを求められるので
    適当なものを入力してEnterを押す
    usernameは半角英数字にしよう。あとは…短い方があとあと便利。

    その後 NewPassword とパスワードの設定を求められるので打ち込んでEnter
    この際、パスワードの秘匿化のために何も表示されずカーソルも動かないが、入力しているので安心して打ち込もう

    Retype new password(もっかい打て)と言われるのでもう一度

    ユーザー名が緑色で表示されていて、エラーメッセージ等がなければOK

上記の手順以降は、スタートメニューからUbuntuと検索してUbuntuを開いても良いし
Windows terminalのタブの”+”のさらに右にある∨マークから
Ubuntuを選択すると(あるいはショートカットで)、Windows terminalの上でUbuntuが開く。

なお、デフォルトの設定だとUbuntuを開くとUbuntuのホームディレクトリで開くし
Windows terminalから開くと、Windows側のホームディレクトリにいる状態で開く

WSL下でのPython環境の構築

※以下では、直接/Windows TerminalのどちらでUbuntu環境を開いている場合も
便宜上”Ubuntuターミナル”と呼ぶことにしよう。

WSL下にPython環境構築をする方法は以下の通り

  • 手順1. aptのupdate/upgrade

    Ubuntuターミナルで以下を入力し実行する

    $sudo apt update
    $sudo apt upgrade
    

    注:上の$は打ち込むのではなく、 Ubuntuターミナルの末尾にある$を指し
    Pythonの対話モードなどで打ち込む場合と区別するための表記。

    sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。
    実行時に、Ubuntu用に設定したパスワードが要求されます
    入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。
    (間違っても再度入力を求めてくれますし、やめたければCtrl+C)

    aptはLinux(Debian系)のパッケージ管理システムです。

    $sudo apt install xxxx
    

    などとして、様々なものを簡単にインストールすることが出来ます。

    ※PCの時刻設定がきちんと行われていないと、aptのupdateやupgradeに失敗します。

  • 手順2. Pythonのインストール

    Ubuntuには初めからPython3系が含まれていますが、

    pythonの最新バージョンをpip込みでインストールしましょう。

    $sudo apt install python3-pip -y
    

    これでpython3.xとpython用のパッケージマネージャpipがインストールされます。

  • 手順3. Pythonの対話モードに入ってみよう

    インストールが終わったらpython3と打ち込んでEnterを押すと
    Pythonの対話モードに入ります。対話モードの中で

    >print("Hello")
    

    などと打ち込んで実行してみましょう。

    打ちかけの作業を消したり、処理を中断する際はCtrl+Cを、
    対話モードから抜けたければCtrl+Dを入力します
    (書きかけのコードがあったり処理が実行されているときは先にCtrl+Cで中断してからCtrl+d)

  • 手順4. ライブラリのインストール

    ライブラリ・モジュールをインストールしたければUbuntuターミナルから

    $pip3 install matplotlib
    $pip3 install pandas
    $pip3 install Selenium
    

    などを実行します。

    Google Colab環境では毎度

    !pip install japanize-matplotlib
    

    などとしましたが、一度インストールしておけば
    コードの実行のたびにpipでインストール作業を行う必要はありません。
    (ライブラリのimportはセッションごとに必要です)

その他、Linuxコマンドの使い方等については元のノートブックを参照