Programming for Beginners Programming for everyone!

Python開発環境の設定

Minicondaのインストール

Miniconda にアクセスして、手順に従いインストールする。Windowsならばインストーラがあるので、それほど難しくはないだろう。MacやLinuxの場合にはシェルスクリプトを使うことになるが、これでも難しくはない。最初はシェルを使うことに慣れないだろうが、これからはずっと使うことになる。慣れよう。

注意
WindowsでMinicondaをインストールする場合は、非推奨ではあるが、環境変数のPATHにMinicondaを設定するように以下の画面でチェックをいれること。

インストールが完了したら作業用のPython仮想環境を作る。WindowsならPowerShell, Macならターミナルを使う。仮想環境を作るコマンドはconda createでそのあとに-n name_of_envというように名前を指定する。合わせて、そのあとにpython=3.6などのように書くことでライブラリ(Pythonの場合にはパッケージということが多い)をバージョンを指定した上で一緒にインストールすることができる。

# Anaconda環境の初期化 (最初に1回だけやればいい, 自分の使っているシェルに合わせる)
$ conda init [powershell,zsh,bash]
# 仮想環境の作成
$ conda create -n beginner python=3.6
# 仮想環境の有効化
$ conda activate beginner
# 仮想環境の無効化
$ conda deactivate

仮想環境を作り終わったらconda activate name_of_envで仮想環境をオンに、conda deactivateでオフにできる。

ちなみにMinicondaと似たものにAnacondaがある。正直どちらを使ってもいいが、Anacondaは仮想環境を作る時に、勝手に色々なライブラリがインストールされる。それはそれで便利なのだが、ディスクをたくさん使用する(Anacondaは数GBを使う)し、必ずしもそれら全部が必要というわけでもないので、筆者はMinicondaを好んで使っている。

必要なライブラリをインストール

現在はNode.js (JavaScript)のNPMやRubyのGemなどインタプリタ言語を中心に多くのパッケージ管理ツールが存在している (コンパイラ言語にもJavaのMavenなどがある)。Pythonのパッケージ管理といえば、昔はvirtualenv + pipだったが、現在はAnacondaが一般的のように思う。

Anaconda環境 (Minicondaを含む) の便利な点は以下のようにコマンド一発で必要なパッケージをインストールできる点にある。

# 仮想環境を有効化した後で
conda install numpy scipy matplotlib scikit-learn scikit-image opencv
conda install -c conda-forge jupyterlab

二つ目のコマンドにある-c conda-forgeというのはconda-forgeというチャンネルから必要なパッケージをインストールせよ、という意味だ。デフォルトのconda環境には存在しないものもconda-forgeチャネルには存在していることが多い。もちろん他にも様々なチャネルが存在していて、以下で使うPyTorchなどはpytorchというチャネルからインストールできる。

conda install -c pytorch pytorch torchvision

補足だが、ウェブ上にはAnacondaとpyenvを共存させるようなやり方を説明している記事がなぜか多い。が、これはあまり意味がないことだ。なぜならAnacondaは仮想環境ごとにPythonのバージョンを変えられるし、パッケージのインストールにpipを使ってもいい(pyenvを使っている人はcondaに欲しいパッケージがないことを気にしているようだ…)。

Visual Studio Codeの設定

Pythonのコード開発をするためのツールは多くあり、GUI環境を使うものだと、一番気が利いているのはJetBrain社が開発しているPyCharmのように思う。特にこだわりがなく、立ち上がりが少し遅くても気にしないなら、PyCharmを使うのが良いと思う。

一方で、最近はVisual Studioコードの進歩が凄まじく、いろいろなオープンソースのライブラリとの親和性も高いので、著者は最近は好んでVisual Studio Code (以下, vscode)を使っている。

vscodeを使う場合には、Pythonの仮想環境にリンター(linter)と呼ばれるコードのチェックや整形を自動化するツールを入れておくと便利である。著者のお勧めの組み合わせは以下の通り。

  • コード規則のチェック
    • ソースコードが読みやすく、Pythonの標準に従った書き方になっているかをチェックする
    • pylint, flake8などがある (おすすめはflake8)
  • コード静的解析
    • ソースコードを走らせずに、バグを生みそうな書き方をチェックする (これを静的解析という)
    • mypyの一択
  • コードの自動整形
    • ソースコードを規則に従うように自動的に整形してくれる
    • autopep8, yapf, blackなどがある (おすすめはyapf)

これらをインストールした上で、設定ファイルを開いて以下のように設定する。設定ファイルは「Ctrl + Shift + P」(MacはCtrlの代わりにCommand)を押して「Preferences: Open Setting (JSON)」という項目を検索する。

{
    ...
    // Python
    "python.condaPath": "/Users/tatsuya/miniconda3/bin/conda",
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": false,
    "python.linting.flake8Enabled": true,
    "python.linting.mypyEnabled": true,
    "python.formatting.provider": "yapf",
    "[python]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        }
    },
    ...
}

インタプリタのパスについては適宜、自分のものに置き換えること。このように設定すると、ファイルを保存するたびに、文法チェックと静的解析が走り、ソースコードが自動整形される。

Jupyter Labの利用

Jupyter LabはPythonをウェブブラウザ上でインタラクティブに実行できる環境であるIPython Notebook (Jupyter)を進化させて、より使いやすくしたものだ。あまり大規模なプログラムを書くのには向いていないが、ちょっとしたプログラムを試すのにはとても便利である。

Jupyter Labは以下のコマンドをシェル (ターミナルやPowerShell) から打つことで実行できる。

jupyter lab

すると、ブラウザが開き、以下の画面が出る。

Jupyter Labの使い方は以前のJupyterとほとんど同じである。細かな使い方についてはWeb上に多くの記事があることから、そちらに譲ることとする。なお、Jupyterはマウスを使わなくてもほぼ全ての動作ができるようになっているので、ショートカットを覚えると非常に効率的にプロトタイピングができる。

Google Colaboratoryの設定

Colabの起動

自身のGoogleアカウントでログインし、ColabのWebページにアクセスする。

https://colab.research.google.com/

すると、以下のような画面が表示されるので、右下にある「ノートブックを新規作成」を選ぶ。するとGoogleドライブに「Colab Notebooks」というフォルダが自動で生成されて、その中に新しいIPython Notebookのファイルが作られる。

ライブラリの設定

Colabはコマンドの先頭に!をつけることでpipを使用することができる。そこで、各ノートブックの先頭に必要なライブラリをインストールするコマンドを書いておく。なおColabは最初からNumPyやscikit-learnなどの機械学習系のパッケージがインストールされているので、PyTorchだけをインストールすればおおよそ事足りる。

!pip install torch torchvision

GPUの使用

なおColabは最初の状態ではGPUが使えない。試しにPyTorchでGPUが使えるかどうかを調べるコマンドを叩いてみる。

print(torch.cuda.is_available())

するとFalseと表示されるはずだ。設定を変更するには、ページ上部のメニューから「ランタイム」→「ランタイムのタイプを変更」を選び、そこから「ハードウェアアクセラレータ」のタイプを「GPU」に変更する。再度、上記のコマンドを叩くと、今度はTrueが表示されるはずだ。

ちなみにColabは使えるリソース (メモリやディスク容量) に制限があるため、あまり多くのことをするには向いていない。ローカルにGPUを使える環境があるなら、その上で上記のJupyter Labを使う方が良いだろう。

comments powered by Disqus