以下の内容は,2019年度以前のものです.2020年度の AProg の授業ではここに書いているのとは違う手段をとる予定ですので,ご注意ください.
ここでは,主として応用プログラミング及び実習の受講者を対象に,自分のPC等でPythonプログラミングできる環境を手に入れる方法を説明します.
というものぐささんには,以下のようなものがおすすめです.最近いろいろあるので,他にも自分で調べてみるとよいです(楽をするための努力を惜しんではいけません (^^).
https://paiza.io/ja ブラウザ上で様々な言語のプログラミングと実行を試せる. 似たようなサービスは他にもいろいろあります.
Google Colaboratory (以下 Colab) を利用する.これは,クラウド上(Googleのデータセンターにあるコンピュータ上)で Jupyter Notebook(もどき)を実行できる環境です.無料のサービスですが,GPUまで使用できちゃいます.
試しに2018年度第1回の授業の notebook を Colab で開くようにしたものが以下にあります.次のようにして開いてみましょう.OS は Windows でも macOS でも Linux でも構いません.ブラウザは Chrome がおすすめです.
2018年度の数理情報学科3年前期科目「パターン情報処理」では,毎週の宿題を Colab 使ってやってもらってました.科目のページから 第5回の宿題 以降の回の宿題のページをたどるといろいろあります.
普通の Jupyter Notebook を Colab で開いて動かすことも可能です.自分で調べるか takataka に尋ねてね.
Windows PC 上でこの授業のために Python 環境を構築するには,Anaconda というものを利用するのが手っ取り早いです.教科書 p.8 からの説明を参考にしましょう.
また,この授業で使用するエディタ Visual Studio Code は Windows 版もあります.#code を参照してください.
macOS の環境でも,Windows 同様に Anaconda を使ってもよいですが,ここでは別のやり方を推奨/説明します.
Homebrew というのは,mac に様々なソフトウェアパッケージをインストールするための「パッケージ管理システム」と呼ばれるものの一つです.実は macOS には標準で Python 入ってるんですが,バージョンが 2.7 なので,Homebrew を使って最新のもの(バージョン3系列)をインストールしましょう.
$ brew install python3
$ python3 -V Python 3.7.0ちなみに,3をつけない python コマンドは,macOS に標準で入ってるもの/Homebrew で入ったもののいずれかの Python2 が起動します(この辺すこし込み入ってるので,環境によってはそうなってないかも.興味のあるひとは takataka に尋ねてください).
これで Python が動く環境ができました.次は jupyter やら何やら,この授業で使ってる Python 関係のもろもろを入れる作業です.
この授業のやり方に似せるために,aprog という名前の仮想環境を作ってそこにいろいろインストールすることにしましょう.ここでは,venv という仕組みを使います(龍大計算機室Linux環境の aprog も venv 使って作ったもの).仮想環境って何とか,venv って何とかいう辺りは説明を省略しますので,自分で調べるか takataka に尋ねてください.
$ python3 -m venv ~/venv/aprog
$ source ~/venv/aprog/bin/activate (aprog) $
$ echo "alias aprog=\"source ~/venv/aprog/bin/activate\"" >> ~/.bashrcalias って何,とか .bashrc って何,とか気になるひとは調べるか takataka に尋ねてね.
$ aprog (aprog) $
(aprog) $ pip install jupyterこうすると,jupyter とその動作のために必要なもろもろがインストールされます.
(aprog) $ curl -O https://www-tlab.math.ryukoku.ac.jp/~takataka/course/AProg/requirements.txt
(aprog) $ pip install -r requirements.txt
ちなみに,この授業で使用するエディタ Visual Studio Code は macOS 版もあります.#code を参照してください.
この授業では,hoge.py という名前で Python プログラムのファイルを作ったら,python コマンドを使って
$ python hoge.py
と実行することを基本としています. しかし,ここで説明する ipython を使うと,いろいろ便利なことがあります(特にプログラム作成途中,デバグ中に). 是非使ってみましょう.
次のように ipython コマンドを実行します.
$ aprog (aprog) $ ipython Python 3.6.1 (default, Feb 2 2018, 08:55:26) Type 'copyright', 'credits' or 'license' for more information IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
IPython が起動して,In [1]: というプロンプト(入力待ってるよって合図)が出てきました. CTRL-D(コントロールキー押しながら'd')してみましょう.
Do you really want to exit ([y]/n)?
ここで y と答えるか(デフォルトが y なので)何も押さず Enter 押すと,終了します. ここでは,n と答えて続けましょう.
上記のプロンプトが出た状態で適当な Python のコードを入力して Enter を押せば,そのコードを実行できます.
In [1]: x = 4649 In [2]: x + 1314 Out[2]: 5963
Jupyter Notebook みたいですね.というか,実は Jupyter はこの IPython をもとにして開発されたものだったりします((よだんだよん)Notebook ファイルの拡張子 ipynb は,IPython Notebook から ).
IPython 上で自分の作った Python プログラムを実行することもできます. 例として,第2回課題C のプログラムを実行してみましょう. 次のように, %run の後ろに実行したいプログラムファイルの名前を書きます.
In [3]: %run 02exC.py
すると,そのプログラムが実行されます.出力があれば IPython 上に表示されますが,この例では(まだ)何も出力がありません.
これだけだったら,普通に python コマンドを使って実行するのと大差ないですが,IPython 使うことの嬉しさは,次のようにしてみると分かります.
In [4]: idList Out[4]: ['ptz541', 'add210', : 'wak946'] In [5]: idList[0] Out[5]: 'ptz541' In [6]: len(idList) Out[6]: 100
このように,プログラム 02exC.py を実行後に,このプログラム中の変数の値を確認できます. また,値を変更したり計算に使ったり,やりたい放題です(例は示しませんが関数を呼ぶことももちろん可能).
In [7]: scoreList[-1] = 99999 In [8]: max(scoreList) Out[8]: 99999
デバグに便利ですので,是非活用しましょう.
Windows, macOS, Linux 等で使えます.無料です.インストールはこちらから: https://code.visualstudio.com/
Visual Studio Code (以下 code)の使い方などについては,ウェブにたくさん情報がありますので,探してみましょう.例えばこんなん: http://www.atmarkit.co.jp/ait/articles/1507/10/news028.html
code では,プログラミングその他のソフトウェア開発をより便利に行えるように,後から「拡張機能」というものを追加することができます.龍大計算機室の Linux 環境の code にも Python のための拡張機能がインストールされてます.とはいえ,code をインストールして Python のコードを書くと Python 用拡張機能のインストールが勧められるので,言われた通りにすればインストールは完了します.
龍大計算機室Linux環境(現在は Ubuntu 14.04LTS)と,その上に構築したこの授業のための仮想環境 aprog との違いを簡単に説明します.以下,プロンプト $ はデフォルトの環境,(aprog) $ は aprog コマンドを実行して有効にした仮想環境,を表します.
コマンド python, python2, python3.違いは,python コマンドで Python2, 3 のどちらが起動するか.
$ python -V Python 2.7.6 $ python2 -V Python 2.7.6 $ python3 -V Python 3.6.1 $ aprog (aprog) $ python -V Python 3.6.1 (aprog) $ python2 -V Python 2.7.6 (aprog) $ python3 -V Python 3.6.1
NumPy のバージョン
$ python3 Python 3.6.1 (default, Feb 2 2018, 08:55:26) (中略) >>> import numpy as np >>> np.__version__ '1.13.3' $ aprog (aprog) $ python Python 3.6.1 (default, Feb 2 2018, 08:55:26) (中略) >>> import numpy as np >>> np.__version__ '1.15.1'
OpenCV のバージョン
$ python3 Python 3.6.1 (default, Feb 2 2018, 08:55:26) (中略) >>> import cv2 >>> cv2.__version__ '3.3.0' $ aprog (aprog) $ python Python 3.6.1 (default, Feb 2 2018, 08:55:26) (中略) >>> import cv2 cv2>>> cv2.__version__ '3.4.2'
他にも,コマンドやPythonの拡張モジュールのバージョンに違い,もしくは aprog 環境にしか入ってないものがあります.