Skip to content

Latest commit

 

History

History

d01

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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コマンドをインストールしましょう.

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

  • あとでanacondaとかインストールしたりしていませんか?
  • 環境変数PATHとかをいじったりしていませんか?

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

1.1. pythonコマンドの種類

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

  1. MS Python(ダミー): Windowsに最初から入っているもの
  2. MS python : Microsoft Store から入手したもの
  3. Anaconda python : Anaconda に付属してきたもの
  4. 素python : 公式サイト python.org から入手したもの

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

0. MS Pyton(ダミー)

  • exeファイルの場所は

%LOCALAPPDATA%\Microsoft\WindowsApps\python.exe

  • これはアプリケーション本体ではありません.ただのショートカットです.このpythonを呼ぶと,Microsoft StoreのPythonのページが立ち上がります.「入手」を押すと,1のMS Pythonを入手することになります.
  • 1のMS Pythonをインストールしたあとは,このショートカットの先は「Microsoft StoreのPythonページ」から「1のMS Python」に変わります.

1. MS Python本体

  • exeファイルの場所は

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

  • MicosoftStore版python (↓のCの不完全版)
  • 端末で何の気なしに python と打つと連れていかれるMicrosoftStoreのPython売り場で手に入れるPython本体

2のAnaconda python

  • exeファイルの場所は

%USERPROFILE%\anaconda3\Scripts\python.exe

3の素Python

  • exeファイルの場所は

%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」をおすすめします.すなわち公式サイト からインストールしてください.

その際にPATHの設定を加えるか聞かれるかもしれませんが,「いいえ」です.また,インストール後に手動でPATHの設定を加える必要もありません.

windowsの人は,今後,pythonコマンドはpythonではなく,pyを使います.

  • python foo.pyではなく, py foo.py です.
  • python -m mod ではなく,py -m mod です.
  • python -VVではなく,py -VVです.

macの人向けのお話

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

(ここは上級者向け)

  • システムPython(管理者権限を持つ人しかインストールやアンインストールをできない)
  • ユーザーPythonをインストールする or システムPythonをユーザーPythonとしても使う
    • ユーザーPython(ユーザが自由にインストール/アンインストールできる)
    • いろいろ入れて取り散らかりがちなので,管理ソフトで管理(どのPythonを使うかを設定)すると良い.
      • mise(MEEZ,ミーズ) がおすすめ
  • 新しくモジュールを作るときは,仮想環境Pythonを使う.
    • 仮想環境Python(ユーザーPythonのsite-packagesを使わない)

2. vscode

Visual Studio Code

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

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

2.1. 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
> poetry config virtualenvs.options.no-setuptools 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 kadai01

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

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

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

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

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

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

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

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

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

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

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

> poetry add 外部パッケージ名

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

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

  • 自作モジュール(.py)の中でimportしているパッケージ
  • 自作モジュールをimportするテストモジュールが他にimportしているパッケージ

どちらもインストールは,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のログインは演習室PCへのログインと同等なので,JupyterHubにログインすると,Eteksのログイン人数に反映されます.
  • 電源を切ることもできますが,Eteksのログイン人数が00人のときのみ電源を切ってもよいです.(心配なら電源つけっぱでもよいです)
    • くれぐれも「現ログインしている人がいるのに電源を切る」ことはしないように

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

  • 左側のディレクトリアイコンがエクスプローラです.
  • 右側にLauncherというタブが表示されています.(無ければ+ボタンでLauncherが表示されます)

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

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

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

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

  • Notebookのpython3を選べば,そのディレクトリに,python3をカーネルとするnotebookが作成されます.
  • OtherのTerminalは,そのディレクトリに移動した状態で,コマンドプロンプトのような端末操作(CUI操作)
  • OtherのPython Fileは,そのディレクトリに,新しいモジュールを作ります.

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