psp2

day01: 開発環境

プログラミングの一番の基盤は,IDE(開発環境).IDE とは

1. Code Editor
    - ソースコードを書くソフトウェア
2. Debugger(Linter, Formatter, Tester)
    - ソースコードのバグを発見するソフトウェア
    - Linter(リンター): ソースコードの文法チェック
    - Formatter(フォーマッター): 文法に沿ったソースコードの整然化
    - Tester(テスター): プログラムの動きを確認するためのテスト(仮のデータ入力と想定される出力)を走らせるしくみ
3. Interpreter(Compiler,Builder)
    - ソースコードを実行するソフトウェア

の 3 種のソフトウェアです.

1.Python

「Python」(パイソン)には 2 つの意味があります.(蛇の種類の意味以外に)

  1. プログラミング言語
  2. インタプリタ・コマンド(実行ファイル)

本来は上記 1 のプログラミング言語である Python 語のことですが,この Python 語で書かれたソースコードを読んでアプリケーション化するコマンドもまた python と読んでいます.

Python コマンドもまたアプリケーションで,元はソースコードがあり,そのソースコードをビルドすることで python コマンドが生成されています.そのソースコードは,さまざまなプログラミング言語で書かれたバージョンがあり,もっとも有名なものは CPython,C 言語というプログラミング言語で書かれたものです.その他には Java 言語で書かれた JPython などもあります.

ともあれ,自分の PC に python コマンドをインストールしましょう.

…とその前に,すでにインストールしているかも.でも,本当に今もそのままですか?

今後のプログラミング演習 Ⅱ の進行のために,全員の開発環境を同じものにしたく,まず,現在インストールしてあるすべての python コマンドをアンインストールしたいと思います.

1.1. python コマンドの種類

windows で,python とコマンドラインで打ったときに呼び出される python.exe は,典型的には次の 4 つです.

  1. MS Python(ダミー): Windows に最初から入っているもの

    C:\Users\アカウント名\AppData\Local\Microsoft\WindowsApps\python.exe

  2. MS python : Microsoft Store から入手したもの

    C:\Users\アカウント名\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python(Version)\*\*\*\python.exe

  3. Anaconda python : Anaconda に付属してきたもの

    C:\Users\アカウント名\anaconda3\Scripts\python.exe

  4. 素 python : 公式サイト python.org から入手したもの

    C:\Users\アカウント名\AppData\Local\Programs\Python\Python(Version)\python.exe

次のコマンドを コマンドプロンプト(Powershellではありません)で実行すると,いろいろ出てくると思います.

> dir /b /s %LOCALAPPDATA% | findstr /r /i "\python.exe$"

これらは,インストール先をいじっていなければ,デフォルトのインストール先が決まっています.

0. MS Pyton(ダミー)

%LOCALAPPDATA%\Microsoft\WindowsApps\python.exe

1. MS Python 本体

%LOCALAPPDATA%\Microsoft\WindowsApps\PythonSoftwareFoundation.Python(Version)***\python.exe

2 の Anaconda python

%USERPROFILE%\anaconda3\Scripts\python.exe

3 の素 Python

%LOCALAPPDATA%\Programs\Python\Python(Version)\python.exe

コマンドプロンプトで,それぞれの場所,

> %LOCALAPPDATA%\Microsoft\WindowsApp\python.exe

などと打ってみてください.

ここで出てきた種類だけの Python があなたの PC にはインストールされているということです.

では,この python たちをアンインストールします.

  1. 上記の確認作業で,Anaconda python の存在が確認された人は,最初に anaconda をアンインストールします.Anaconda をインストールした覚えのない人も念の為に次のコマンドをどこかで動かしてください.

    > conda install -c anaconda anaconda-clean
    > anaconda-clean
    
  2. 一般的に Windows でインストールしたものはギアアイコンの「設定」から「アプリと機能」,「python」を検索すると出てきます.ここでアンインストールを選びます.複数見つかることもあります.

  3. 環境変数の PATH に python に関する記述があれば,その部分を削除します.

1.2. python コマンドのインストール

ぶっちゃけ何でも構いませんが,皆と同じ環境にしたいなら,演習 Ⅱ では「素 python」をおすすめします.すなわち公式サイト のものをインストールする,ということになりますが,,,,

おすすめのソフトウェアインストール方法 があります.winget を使う方法です.

winget は,Microsoft謹製のパッケージ管理ソフトです.パッケージ管理とはバージョン管理とも云われ,ここで管理対象になった(インストールした)ソフトウェアは,コマンド一発でアップグレードされます.

  1. winget でインストールできる Python関連ソフトウェアを探す.
     > winget search --id Python
    
     名前                      ID                             バージョン          ソース
     ----------------------------------------------------------------------
     Python Launcher           Python.Launcher                3.13.5               winget
     Python 2                  Python.Python.2                2.7.18150            winget
     Python 3.0                Python.Python.3.0              3.0.1                winget
     Python 3.1                Python.Python.3.1              3.1.4                winget
     Python 3.10               Python.Python.3.10             3.10.11              winget
     :
     Python 3.14               Python.Python.3.14             3.14.4               winget
     Python 3.9                Python.Python.3.9              3.9.13               winget
     Python Install Manager    Python.PythonInstallManager    26.1.240.0           winget
     :
     winpython                 winpython.winpython            7.0.20231126final    winget
     :
    
  2. IDが Python.Python.X.Y なのが公式Pythonで,最新は Python.Python.3.14 のようです. これをインストールしてもよいのですが,公式には,インストールマネージャを利用することが勧められています. よって,まず Python.PythonInstallManager をインストールします. 「名前」ではなく,「ID」を指定します.
     > winget remove --id Python.Launcher
     > winget install --id Python.PythonInstallManager
    
    • インストールされるコマンドは py です. 実は,少し前まで py は Python.Launcher のことだったので, Python.PythonInstallManager をインストールする前に Python.Launcherをアンインストールしています.
  3. 最新のPythonをインストールします.
     > py install default
    
     Installing Python 3.14.4.
     Downloading: .............. ☑
     Extracting: ............... ☑
    
     Global shortcuts directory is not on PATH. Add it for easy access to global Python aliases.
     Directory to add: C:\Users\アカウント名\AppData\Local\Python\bin
    

    最後に書いてあることは,

    • 「グローバル・ショートカットが収められたディレクトリ」が環境変数 %PATH% 上に無い.
    • グローバルなPythonのエイリアス(別称)を利用したければ,%PATH% にそのディレクトリを追加せよ.
    • 追加するディレクトリは,〜 です.Pythonのエイリアスは必要ないので,何もしないことにします.
  4. これでPython最新版が使えます.
    • どこに python.exe があるでしょうか?確認します.
        > dir /b /s %LOCALAPPDATA% | findstr /r /i "\python.exe$"
      
        C:\Users\アカウント名\AppData\Local\Python\bin\python.exe
        C:\Users\アカウント名\AppData\Local\Python\pythoncore-3.13-64\python.exe
        C:\Users\アカウント名\AppData\Local\Python\pythoncore-3.14-64\python.exe
      
    • コマンドプロンプトで python.exe だとか python と呼んでも起動しません.
        > python.exe
      
        'python.exe'は,内部コマンドまたは外部コマンド,
        操作可能なプログラムまたはバッチファイルとして認識されていません.
      
    • そもそもコマンドプロンプトで呼べるコマンドは %PATH% (環境変数 PATH) に列挙されたディレクトリの中のものです.ということで,手順3の最後にあった

      PATH に C:\Users\アカウント名\AppData\Local\Python\bin を加えるといいよ.

      につながるわけですが,python ではなく,py でPythonが使える ので,そっちで行きましょう.

        > where python
      
        (何もでてこない)
      
        > where py
      
        C:\Users\アカウント名\AppData\Local\Microsoft\WindowsApps\py.exe
      
        > py
      
        Python 3.14.4 (tags/v3.14.4:23116f9, Apr 7 2026, 14:10:54) [MSC v.1944 64 bit (AMD64)] on win32
        Type "help", "copyright", "credits" or "license" for more information.
        >>> 3.14 / 2
        1.57
        >>> quit()
      
      
  5. ちなみに,py の使い方をいくつか.
    • Python を新しくしたければ,
        > py install --update
      
    • Python Install Manager で管理しているPython (* が付いているものが py で起動するPython)
        > py list
        Tag               Name              Managed By    Version    Alias
        3.14[-64]    *    Python 3.14.4     PythonCore    3.14.4     python3[-64].exe, python3.14[-64].exe
        3.13[-64]         Python 3.13.13    PythonCore    3.13.13    python3.13[-64].exe
      

mac の人向けのお話

mac の人は,最初から python が入っています.

1.3. インストールした python.exe は直接には使いません.

インストールした python.exe は直接には使いません.

アプリを作ろうとなったときごとに,そのプロジェクト専用の「仮想環境」を用意します.その「仮想環境」の中に python.exe を入れて(実はインストール済みのコピー),それを使います.

同じものなのになぜわざわざ仮想環境のものを使うのか?

2. vscode

Visual Studio Code

Microsoft Windows には昔々から,Visual Studio という IDE(頭で紹介したエディタ・デバッガ・インタプリタ)すべての入ったソフトウェアがありますVisual Studio.ただし,WindowsOS 専用です.また,とても大きなソフトウェアであり,手軽に扱えるものではありません.

Visual Studio Code (以下,vscodecode)は,そのエディタに特化したものとなります. ただし,拡張機能を多く備えることができ,エディタでありながら,デバッグ,ビルドも可能なものとなっています.さらに,WindowsOS だけでなく,MacOS,LinuxOS でも同じように使用できます.

2.1. インストール

どうせなので,さきほどPythonインストールでも登場した winget を使います.

> winget search --id VisualStudioCode

名前                                         ID                                         バージョン    ソース
----------------------------------------------------------------------------------------------------------
Microsoft Visual Studio Code                 Microsoft.VisualStudioCode                 1.116.0       winget
Microsoft Visual Studio Code CLI             Microsoft.VisualStudioCode.CLI             1.116.0       winget
Microsoft Visual Studio Code Insiders        Microsoft.VisualStudioCode.Insiders        1.117.0       winget
Microsoft Visual Studio Code Insiders CLI    Microsoft.VisualStudioCode.Insiders.CLI    1.117.0       winget
> winget install --id Microsoft.VisualStudioCode

2.2. vscode の使い方

vscode はエディタですが,プログラミングに特化したエディタです.

プログラミングでは,あるアプリケーションを作ろうとなった場合に, 「プロジェクト」と呼ぶフォルダを作り,その中にソースコードやらリソースファイル(アイコンや画像や音楽ファイルなど),説明書(Readme),ライセンス(License)を入れます.

vscode では,ファイルを一つ一つ開くのではなく,この「プロジェクト」のフォルダを開きます.

フォルダを開いたあと,そのフォルダルート(根っこ)を起点として,その下にあるソースコードを編集したり,ファイルを加えたり削除したりの整理をしたりします.

2.2. vscode の拡張機能

以下の拡張機能をインストールしてください.

日本語パック拡張機能

Python 用拡張機能

3. poetry

演習 Ⅰ や Web 上のいろんなサイトで,numpy その他のパッケージをインストールする際にpipcondaを使っているかもしれませんが,この演習 Ⅱ ではpoetry を使います.

まず,poetry をインストールしましょう.

PS > (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
PS > [System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\AppData\Roaming\Python\Scripts;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

mac や linux の人は,

> curl -sSL https://install.python-poetry.org | python3 -

3.1. poetry の使い方

poetry は単なるパッケージインストーラではなく,むしろ「プロジェクト」フォルダのマネージャです.

何はともあれ,最初に次のようにしてください.どのフォルダでもいいです.

> poetry config virtualenvs.in-project true
> poetry config virtualenvs.options.no-pip true

(上記は,プロジェクトのライブラリ置き場を,プロジェクト内の .venv というフォルダに置く,という設定です.この設定をしない場合は,デフォルトで,ユーザのVirtualenvsというフォルダの下にプロジェクトごとの env が置かれます)

3.2. プロジェクトを始めるときには,

プロジェクトとは,パッケージとほぼ同じ意味と考えても結構です.配布(提出)するモジュールが梱包されたディレクトリです.

0. プロジェクトの親ディレクトリを作ります.

これから,さまざまなプロジェクトを作るので,それらを置くための親となるディレクトリを作ります.エクスプローラで作ってもいいでしょう.ディレクトリの名前は何でもいいです.例えば psp2 とか.

1. プロジェクトの親ディレクトリに移動

たとえばディレクトリの場所が C:\Users\helmenov\Documents\psp2 ならば,

> cd C:\Users\helmenov\Documents\psp2

2. プロジェクトを作る.

新しくプロジェクトを作ります.たとえば課題1用に, kadai01 なら,

> poetry new --interactive kadai01

と打ちます.すると,いろいろ聞かれますが,適切に答えると,kadai01 というディレクトリが作られます.

そのディレクトリに入ると,いろいろなものができています.

kadai01
├── README.md
├── src
│   └── kadai01
│       └── __init__.py
├── pyproject.toml
└── tests
    └── __init__.py

kadai01ディレクトリの中にさらに src というディレクトリ,さらにその下に kadai01 というディレクトリができています.この深い位置の方の kadai01 が配布されるパッケージです.このディレクトリの中にあなたがモジュールを作成します.すでに__init__.py というものがありますが,とりあえず今は気にせずそのままに.

pyproject.tomlというファイルがあります.これが「あなたの作ったパッケージを使うためにあらかじめインストールしていなければならないパッケージのリスト」です.さらに,このファイルにはパッケージのバージョンを書きます.

他に, README.mdというファイルがありますが,これはあなたの作ったパッケージの説明書です.

testsというディレクトリは,あなたの作ったパッケージをテストするためのモジュールを置きます.

3. プロジェクトに必要な外部パッケージのインストール

実は,上記で作ったプロジェクトですが,他のプロジェクトでインストールした外部パッケージを使えません.

外部パッケージはプロジェクト毎に入れ直してください.

外部パッケージのインストールは,

> poetry add 外部パッケージ名

でおこないます.(pip installではありません)

ちなみに,厳密には「プロジェクトに必要な外部パッケージ」には2種類あり,

どちらもインストールは,poetry add でインストールしてもいいのですが,後者は自作パッケージ配布のときには不要なパッケージです.

なのでpoetry add --group=devでインストールしておくと,配布物から取り除かれます.

ちなみに,不要になった外部パッケージは,

> poetry remove 外部パッケージ

で削除できます.

3.3. 自作パッケージの配布

作った自作モジュールを詰め込んだ自作パッケージを配布(提出)したいときは,まずpyproject.toml[tool.poetry]versionの数値を大きくします.

そのあと,

> poetry build

すると,dist/kadai01-0.1.0-py3-none-any.whlみたいのができます.これを配布(提出)します.

4. vscode でコーディング

まず,それぞれのプロジェクトで,

> poetry add ipykernel --group=dev

してください.

その後,vscode でプロジェクトを開き,python ソースコードを編集します.

インタプリタを聞かれます.このときには,./.venv/bin/pythonを選ぶようにします. (たいていは,自動的にインタプリタが選ばれます)

5. jupyterhub の利用

演習室の JupyterHub を使うこともできます.ただし,学外からは使えません.

学内であれば,まずEteks で使う演習室 PC を決めます.使う PC が起動していない場合は新たに起動してください.

起動していることが確認できたら,つなぐ演習室 PC の JupyterHubに WebBrowser でアクセスします.

ディレクトリの移動は,エクスプローラでおこないます.

ファイルリストの上に ■ / … / k00 / tests / のような表示があると思いますが,そのが所謂ホームディレクトリで,演習室 PC のあなたのディレクトリの根っこです.をクリックすると,その根っこに移動します.

ファイルリストから移動したいディレクトリをクリックすれば,そのディレクトリに移動します.

移動先のディレクトリの下のファイルリストが表示されている状態で,右側の Launcher で操作します.

poetry をインストールしてみましょう.現在開いているディレクトリがどこでも構いません.

Launcher の Other の Terminal を開きます.

[sonoda@bes-ex01 ~] $ □

のようになっています.ここで,

[sonoda@bes-ex01 ~] $ python -m pip install poetry

と打って実行すると,ズラーとインストール処理が行われ,最後に

Successfully installed poetry-1.8.2
[sonoda@bes-ex01 ~] $ □

となってインストール終了です.試しに

[sonoda@bes-ex01 ~] $ poetry help

で poetry のヘルプが表示されます.

あとはほぼ上記の自分 PC での操作と同じ(poetry configを忘れずに)ですが,

vscode のときにインタプリタを聞かれたら .venv/bin/pythonを選べ

に対応するインタプリタ設定が必要です.

  1. Other/Terminal で Python を起動する場合

    1. まず,

      [sonoda@bes-ex01 k00] $ poetry shell
      

      と打つと

      (k00-py3.8) [sonoda@bes-ex01 k00]$
      

      のようになるかと思います.

    2. この状況で python を動かせば,自分で入れた site-packages が反映されます.

  2. Notebook を使いたい場合

    1. 初めから用意されているpython3というカーネルには,自分で入れた site-packages が反映されません.よって新たにカーネルを作ります.
    2. Other/Terminal にて

      [sonoda@bes-ex01 k00] $ poetry add ipykernel --group=Dev
      

      で カーネル作成パッケージをインストールし,それを使ってカーネルを作ります.カーネル名を指定します.たとえばk00なら

      [sonoda@bes-ex01 k00]$ poetry run ipython kernel install --user --name=k00
      
    3. Launcher を開くと,Notebook に自分で作ったカーネルが追加されています.そのカーネルで Notebook を作れば,そこでは自分の入れた site-packages が使えます.
    4. ちなみに自分の作ったカーネルのリストは

      [sonoda@bes-ex01 k00] $ jupyter kernelspec list
      
    5. ちなみに自分の作ったカーネルを削除するときは,

      [sonoda@bes-ex01 k00] $ jupyter kenelspec uninstall k00