プログラミングの一番の基盤は,IDE(開発環境).IDEとは
1. Code Editor
- ソースコードを書くソフトウェア
2. Debugger(Linter, Formatter, Tester)
- ソースコードのバグを発見するソフトウェア
- Linter(リンター): ソースコードの文法チェック
- Formatter(フォーマッター): 文法に沿ったソースコードの整然化
- Tester(テスター): プログラムの動きを確認するためのテスト(仮のデータ入力と想定される出力)を走らせるしくみ
3. Interpreter(Compiler,Builder)
- ソースコードを実行するソフトウェア
の3種のソフトウェアです.
「Python」(パイソン)には2つの意味があります.(蛇の種類の意味以外に)
- プログラミング言語
- インタプリタ・コマンド(実行ファイル)
本来は上記1のプログラミング言語であるPython語のことですが,このPython語で書かれたソースコードを読んでアプリケーション化するコマンドもまたpythonと読んでいます.
Pythonコマンドもまたアプリケーションで,元はソースコードがあり,そのソースコードをビルドすることでpythonコマンドが生成されています.そのソースコードは,さまざまなプログラミング言語で書かれたバージョンがあり,もっとも有名なものはCPython,C言語というプログラミング言語で書かれたものです.その他にはJava言語で書かれたJPythonなどもあります.
ともあれ,自分のPCにpythonコマンドをインストールしましょう.
...とその前に,すでにインストールしているかも.でも,本当に今もそのままですか?
- あとでanacondaとかインストールしたりしていませんか?
- 環境変数PATHとかをいじったりしていませんか?
今後のプログラミング演習Ⅱの進行のために,全員の開発環境を同じものにしたく,まず,現在インストールしてあるすべてのpythonコマンドをアンインストールしたいと思います.
windowsで,python
とコマンドラインで打ったときに呼び出されるpython.exe
は,典型的には次の4つです.
- MS Python(ダミー): Windowsに最初から入っているもの
- MS python : Microsoft Store から入手したもの
- Anaconda python : Anaconda に付属してきたもの
- 素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たちをアンインストールします.
-
上記の確認作業で,Anaconda pythonの存在が確認された人は,最初にanacondaをアンインストールします.Anacondaをインストールした覚えのない人も念の為に次のコマンドをどこかで動かしてください.
> conda install -c anaconda anaconda-clean > anaconda-clean
-
一般的にWindowsでインストールしたものはギアアイコンの「設定」から「アプリと機能」,「python」を検索すると出てきます.ここでアンインストールを選びます.複数見つかることもあります.
-
環境変数のPATHに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の人は,最初からpythonが入っています.
- システムPython(管理者権限を持つ人しかインストールやアンインストールをできない)
- ユーザーPythonをインストールする or システムPythonをユーザーPythonとしても使う
- ユーザーPython(ユーザが自由にインストール/アンインストールできる)
- いろいろ入れて取り散らかりがちなので,管理ソフトで管理(どのPythonを使うかを設定)すると良い.
- mise(MEEZ,ミーズ) がおすすめ
- 新しくモジュールを作るときは,仮想環境Pythonを使う.
- 仮想環境Python(ユーザーPythonのsite-packagesを使わない)
Microsoft Windowsには昔々から,Visual StudioというIDE(頭で紹介したエディタ・デバッガ・インタプリタ)すべての入ったソフトウェアがありますVisual Studio.ただし,WindowsOS専用です.また,とても大きなソフトウェアであり,手軽に扱えるものではありません.
Visual Studio Code (以下,vscode
やcode
)は,そのエディタに特化したものとなります.
ただし,拡張機能を多く備えることができ,エディタでありながら,デバッグ,ビルドも可能なものとなっています.さらに,WindowsOSだけでなく,MacOS,LinuxOSでも同じように使用できます.
vscodeはエディタですが,プログラミングに特化したエディタです.
プログラミングでは,あるアプリケーションを作ろうとなった場合に, 「プロジェクト」と呼ぶフォルダを作り,その中にソースコードやらリソースファイル(アイコンや画像や音楽ファイルなど),説明書(Readme),ライセンス(License)を入れます.
vscodeでは,ファイルを一つ一つ開くのではなく,この「プロジェクト」のフォルダを開きます.
フォルダを開いたあと,そのフォルダルート(根っこ)を起点として,その下にあるソースコードを編集したり,ファイルを加えたり削除したりの整理をしたりします.
以下の拡張機能をインストールしてください.
演習ⅠやWeb上のいろんなサイトで,numpyその他のパッケージをインストールする際にpip
やconda
を使っているかもしれませんが,この演習Ⅱでは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 -
poetryは単なるパッケージインストーラではなく,むしろ「プロジェクト」フォルダのマネージャです.
何はともあれ,最初に次のようにしてください.どのフォルダでもいいです.
> poetry config virtualenvs.in-project true
> poetry config virtualenvs.options.no-pip true
> poetry config virtualenvs.options.no-setuptools true
(上記は,プロジェクトのライブラリ置き場を,プロジェクト内の .venv
というフォルダに置く,という設定です.この設定をしない場合は,デフォルトで,ユーザのVirtualenvs
というフォルダの下にプロジェクトごとのenvが置かれます)
プロジェクトとは,パッケージとほぼ同じ意味と考えても結構です.配布(提出)するモジュールが梱包されたディレクトリです.
これから,さまざまなプロジェクトを作るので,それらを置くための親となるディレクトリを作ります.エクスプローラで作ってもいいでしょう.ディレクトリの名前は何でもいいです.例えば psp2
とか.
たとえばディレクトリの場所が C:\Users\helmenov\Documents\psp2
ならば,
> cd C:\Users\helmenov\Documents\psp2
新しくプロジェクトを作ります.たとえば課題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
というディレクトリは,あなたの作ったパッケージをテストするためのモジュールを置きます.
実は,上記で作ったプロジェクトですが,他のプロジェクトでインストールした外部パッケージを使えません.
外部パッケージはプロジェクト毎に入れ直してください.
外部パッケージのインストールは,
> poetry add 外部パッケージ名
でおこないます.(pip install
ではありません)
ちなみに,厳密には「プロジェクトに必要な外部パッケージ」には2種類あり,
- 自作モジュール(.py)の中でimportしているパッケージ
- 自作モジュールをimportするテストモジュールが他にimportしているパッケージ
どちらもインストールは,poetry add
でインストールしてもいいのですが,後者は自作パッケージ配布のときには不要なパッケージです.
なのでpoetry add --group=dev
でインストールしておくと,配布物から取り除かれます.
ちなみに,不要になった外部パッケージは,
> poetry remove 外部パッケージ
で削除できます.
作った自作モジュールを詰め込んだ自作パッケージを配布(提出)したいときは,まずpyproject.toml
の[tool.poetry]
のversion
の数値を大きくします.
そのあと,
> poetry build
すると,dist/kadai01-0.1.0-py3-none-any.whl
みたいのができます.これを配布(提出)します.
まず,それぞれのプロジェクトで,
> poetry add ipykernel --group=dev
してください.
その後,vscodeでプロジェクトを開き,pythonソースコードを編集します.
インタプリタを聞かれます.このときには,./.venv/bin/python
を選ぶようにします.
(たいていは,自動的にインタプリタが選ばれます)
演習室の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
を選べ
に対応するインタプリタ設定が必要です.
-
Other/TerminalでPythonを起動する場合
-
まず,
[sonoda@bes-ex01 k00] $ poetry shell
と打つと
(k00-py3.8) [sonoda@bes-ex01 k00]$
のようになるかと思います.
-
この状況でpythonを動かせば,自分で入れたsite-packagesが反映されます.
-
-
Notebookを使いたい場合
-
初めから用意されている
python3
というカーネルには,自分で入れたsite-packagesが反映されません.よって新たにカーネルを作ります. -
Other/Terminalにて
[sonoda@bes-ex01 k00] $ poetry add ipykernel --group=Dev
で カーネル作成パッケージをインストールし,それを使ってカーネルを作ります.カーネル名を指定します.たとえば
k00
なら[sonoda@bes-ex01 k00]$ poetry run ipython kernel install --user --name=k00
-
Launcherを開くと,Notebookに自分で作ったカーネルが追加されています.そのカーネルでNotebookを作れば,そこでは自分の入れたsite-packagesが使えます.
-
ちなみに自分の作ったカーネルのリストは
[sonoda@bes-ex01 k00] $ jupyter kernelspec list
-
ちなみに自分の作ったカーネルを削除するときは,
[sonoda@bes-ex01 k00] $ jupyter kenelspec uninstall k00
-