#author("2019-09-25T17:16:37+09:00","default:takataka","takataka")
#author("2020-08-31T18:07:12+09:00","default:takataka","takataka")
&color(red){''以下の内容は,2019年度以前のものです.2020年度の AProg の授業ではここに書いているのとは違う手段をとる予定ですので,ご注意ください.''};

*Pythonのプログラミング環境を整えるためのほげ [#t81a0136]

ここでは,主として[[応用プログラミング及び実習>AProg]]の受講者を対象に,自分のPC等でPythonプログラミングできる環境を手に入れる方法を説明します.

#contents
**インストールとかそういう面倒いのなしでよろ [#j18cc1af]

というものぐささんには,以下のようなものがおすすめです.最近いろいろあるので,他にも自分で調べてみるとよいです(&size(8){楽をするための努力を惜しんではいけません (^^};).

***その1 [#p587e6db]

https://paiza.io/ja  ブラウザ上で様々な言語のプログラミングと実行を試せる.
似たようなサービスは他にもいろいろあります.
- https://codeanywhere.com/
- https://ideone.com/

***その2 [#r372316e]

Google Colaboratory (以下 Colab) を利用する.これは,クラウド上(Googleのデータセンターにあるコンピュータ上)で Jupyter Notebook(もどき)を実行できる環境です.無料のサービスですが,GPUまで使用できちゃいます.

試しに2018年度第1回の授業の notebook を Colab で開くようにしたものが以下にあります.次のようにして開いてみましょう.OS は Windows でも macOS でも Linux でも構いません.ブラウザは Chrome がおすすめです.
+ ↓のリンクをたどる(右クリックして「新しいタブで開く」等にしておくのがよいでしょう).
+ 途中で Google へのログインが必要」と言われる場合があります.その場合は「学籍番号@mail.ryukoku.ac.jp」を入力し,大学の統合認証のページへ進めば ok です(個人の Google アカウントを持ってるひとはそっちでも可).
>
[[2018年度第1回のnotebook(Colab版)>https://colab.research.google.com/gist/takatakamanbou/4964d4c41a5fadc7ccc7bcf43906b742/01note.ipynb]]
<

2018年度の数理情報学科3年前期科目「[[パターン情報処理>PIP/2018]]」では,毎週の宿題を Colab 使ってやってもらってました.科目のページから [[第5回の宿題>PIP/2018/hw05]] 以降の回の宿題のページをたどるといろいろあります.

普通の Jupyter Notebook を Colab で開いて動かすことも可能です.自分で調べるか takataka に尋ねてね.
** Windows PC 上に Python 環境を構築する [#win]

Windows PC 上でこの授業のために Python 環境を構築するには,Anaconda というものを利用するのが手っ取り早いです.教科書 p.8 からの説明を参考にしましょう.

また,この授業で使用するエディタ Visual Studio Code は Windows 版もあります.[[#code]] を参照してください.
** mac 上に Python 環境を構築する [#mac]

macOS の環境でも,Windows 同様に Anaconda を使ってもよいですが,ここでは別のやり方を推奨/説明します.


*** Homebrew による Python のインストール [#y481c764]

Homebrew というのは,mac に様々なソフトウェアパッケージをインストールするための「パッケージ管理システム」と呼ばれるものの一つです.実は macOS には標準で Python 入ってるんですが,バージョンが 2.7 なので,Homebrew を使って最新のもの(バージョン3系列)をインストールしましょう.

+ Homebrew のインストール.「ターミナル」を起動して,https://brew.sh/index_ja の最初の方の1行を貼り付けて実行するだけ.
+ Python のインストール. 次のようにします.
 $ brew install python3
+ 起動することの確認.Homebrew の設定と Homebrew を使った Python3 のインストールがちゃんとできていたら,''python3'' というコマンドでインストールした Python3 が動きます.次のようにしてバージョンを確認できるはず.
 $ python3  -V
 Python 3.7.0
ちなみに,''3''をつけない ''python'' コマンドは,macOS に標準で入ってるもの/Homebrew で入ったもののいずれかの Python2 が起動します(この辺すこし込み入ってるので,環境によってはそうなってないかも.興味のあるひとは takataka に尋ねてください).  

これで Python が動く環境ができました.次は jupyter やら何やら,この授業で使ってる Python 関係のもろもろを入れる作業です.
*** 仮想環境の構築ともろもろのインストール [#venv]

この授業のやり方に似せるために,aprog という名前の仮想環境を作ってそこにいろいろインストールすることにしましょう.ここでは,venv という仕組みを使います(龍大計算機室Linux環境の aprog も venv 使って作ったもの).仮想環境って何とか,venv って何とかいう辺りは説明を省略しますので,自分で調べるか takataka に尋ねてください.

+ 仮想環境 aprog の作成.ここでは,~/venv/aprog というディレクトリの下にもろもろ置く設定にします.
 $ python3  -m  venv  ~/venv/aprog
+ 仮想環境に入る(activate).次のようにすることで,作成した仮想環境に入ります.
 $ source ~/venv/aprog/bin/activate
 (aprog) $
+ 上記は龍大計算機室Linux環境で aprog コマンドを実行することに相当します.毎回上記のように打つのが面倒くさければ,次のように設定しておくとよいでしょう.
 $ echo "alias aprog=\"source ~/venv/aprog/bin/activate\"" >> ~/.bashrc
alias って何,とか .bashrc って何,とか気になるひとは調べるか takataka に尋ねてね.
+ いったん「ターミナル」を終了して起動し直して,aprog コマンドが使えるようになったことを確認しましょう.
 $ aprog
 (aprog) $
+ この仮想環境 aprog に,必要なソフトをインストールしましょう.pip というコマンドを使います.とりあえず jupyter をインストールしてみます.
 (aprog) $ pip  install jupyter
こうすると,jupyter とその動作のために必要なもろもろがインストールされます.
+ 上記ののりで必要なものを一つ一つインストールするのもいいんですが,面倒なので,龍大計算機室Linux環境の aprog 仮想環境にインストールされているソフトウェアのリストを使って,それらをまとめてインストールしちゃいましょう.
++ インストールされてるソフトのリストを入手
 (aprog) $ curl  -O  https://www-tlab.math.ryukoku.ac.jp/~takataka/course/AProg/requirements.txt
++ まとめてインストール
 (aprog) $ pip  install  -r  requirements.txt
+ 動作確認する.授業の notebook を開いてみたり,プログラムを作って動かしたりしてみましょう.[[AProg/2018/ex01#ex01S]] を動かしてみるのがよいかも.

ちなみに,この授業で使用するエディタ Visual Studio Code は macOS 版もあります.[[#code]] を参照してください.
**IPython [#ipython]

この授業では,hoge.py という名前で Python プログラムのファイルを作ったら,python コマンドを使って
 $ python  hoge.py
と実行することを基本としています.
しかし,ここで説明する ''ipython'' を使うと,いろいろ便利なことがあります(特にプログラム作成途中,デバグ中に).
是非使ってみましょう.


次のように ipython コマンドを実行します.
#pre{{
$ 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 を押せば,そのコードを実行できます.
#pre{{
In [1]: x = 4649

In [2]: x + 1314
Out[2]: 5963
}}
Jupyter Notebook みたいですね.というか,実は Jupyter はこの IPython をもとにして開発されたものだったりします(&size(10){(よだんだよん)Notebook ファイルの拡張子 ipynb は,''IPy''thon ''N''ote''b''ook から}; ).

IPython 上で自分の作った Python プログラムを実行することもできます.
例として,[[第2回課題C>https://www-tlab.math.ryukoku.ac.jp/wiki/?AProg/2018/ex02#kadaiC]] のプログラムを実行してみましょう.
次のように, %run の後ろに実行したいプログラムファイルの名前を書きます.
 In [3]: %run 02exC.py
すると,そのプログラムが実行されます.出力があれば IPython 上に表示されますが,この例では(まだ)何も出力がありません.

これだけだったら,普通に python コマンドを使って実行するのと大差ないですが,IPython 使うことの嬉しさは,次のようにしてみると分かります.
#pre{{
In [4]: idList
Out[4]: 
['ptz541',
 'add210',
     :
 'wak946']

In [5]: idList[0]
Out[5]: 'ptz541'

In [6]: len(idList)
Out[6]: 100
}}
このように,プログラム 02exC.py を実行後に,このプログラム中の変数の値を確認できます.
また,値を変更したり計算に使ったり,やりたい放題です(例は示しませんが関数を呼ぶことももちろん可能).
#pre{{
In [7]: scoreList[-1] = 99999

In [8]: max(scoreList)
Out[8]: 99999
}}
デバグに便利ですので,是非活用しましょう.

**Visual Studio Code [#code]

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環境のデフォルトと仮想環境 aprog の違い [#roesvsaprog]

龍大計算機室Linux環境(現在は Ubuntu 14.04LTS)と,その上に構築したこの授業のための仮想環境 aprog との違いを簡単に説明します.以下,プロンプト ''$'' はデフォルトの環境,''(aprog) $'' は aprog コマンドを実行して有効にした仮想環境,を表します.

コマンド python, python2, python3.''違いは,python コマンドで Python2, 3 のどちらが起動するか.''
#pre{{
$ 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 のバージョン
#pre{{
$ 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 のバージョン
#pre{{
$ 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 環境にしか入ってないものがあります.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS