pyenv + Anaconda + PyTorch + IntelliJ IDEA 環境を構築するときの手順メモです。
Anacondaで環境揃えてた所にIntelliJ IDEAからも触れるようにしたいなぁと思った人用です。果たしてどれだけ需要があるのやら。。。
前提
- MacBook Pro 2016(High Sierra)で構築しています。
- Windows10な環境でも一応同じような手順でできることは確認してます。
Anaconda入れる
windowsの場合
以下からwindows用のAnaconda(python3系)をダウンロードして、インストールします。
https://www.anaconda.com/download/#windows
もろもろの環境がセットされているので楽です。
Macの場合
PythonやAnacondaぐらいしか触らないという場合は、同じように以下からダウンロードしてインストールでもよいです。
https://www.anaconda.com/download/#macos
が、他にも色々開発していたり、複数のpythonバージョンの共存を気にする場合はpyenvなどの環境分離ツールを使っておくと安全です。
特にAnacondaはシステムのデフォルトpythonのPATHなんかを上書きしたりするので注意が必要です。
今回は、Mac自体のpython(2系がデフォルトで入っている)を生かしつつ、開発用のプロジェクトディレクトリのみAnacondaで導入される3系を使うようにしています。
pyenv入れる
まずMacで定番のパッケージ管理ツールhomebrewを入れておきます。
これ。
Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
続いてhomebrewでpyenvをインストール
これ。
pyenv
$ brew update
$ brew install pyenv
インストール可能なリストを表示
$ pyenv install --list
3.6.4
3.7.0b2
3.7-dev
anaconda-1.4.0
・・・
anaconda3-5.1.0
$ pyenv install anaconda3-5.1.0
3.x.xみたいなのはpythonのバージョンです。pythonだけインストールしたい場合はこちら。
今回はanaconda3-5.x.xを選択します。
インストール後、現在インストールされている内容をversionsで確認してみます。
$ pyenv versions
* system
anaconda3-5.1.0
$ mkdir qiita
$ cd qiita
$ pyenv local anaconda3-5.1.0
特定のディレクトリ下だけにanaconda環境を反映したい場合は、そのディレクトリでpyenv local anaconda3-5.1.0
のように設定をするとOKです。
デフォルト設定自体を変えたい場合はlocal
のところをglobal
で。
PyTorch入れる
続いて機械学習ライブラリであるPyTorchを入れてみます。
といっても公式サイトにあるように1、2行で終わりです。
https://pytorch.org/
今回はAnacondaを使っているので、package managerはcondaを選びましょう。
conda install pytorch torchvision -c pytorch
CUDAあるなしで少し変わりますね。
windowsの場合はAnaconda promptから実行しましょう。
IntelliJ IDEAで開く
PyCharmの場合はpython用なので何も問題なしです。
IntelliJ IDEAをお使いの場合は、pythonプライグインをインストールしておきます。
次に先ほど諸々設定したディレクトリを開き、プロジェクトの設定(File -> Project structure)を開きます。
Project SDKというところに何も設定されていない状態かと思いますので、Python環境の設定を行います。
Newをクリック
Existing environmentの所に自動的に設定したanacondaの設定が出て来ます。
(出てこない場合もありましたが、再起動したり、後述のScientific Modeなどに切り替えてたりすると認識されました。もしくはそれでもダメなら手動設定)
そちらを選択してOKを押すと、環境の読み込みがバックグラウンドで実行されます。
コード書いて確認
pythonファイルを追加し、動作確認を行います。
PyTorchのような機械学習ライブラリを使う場合、コードを書いては消してというような試行錯誤を行うことが多いので、適したモードに切り替えます。
Scientific Modeというもので、JupterNotebookとかspyderとかに近い使い勝手になります。すごい。
View -> Scientific Mode で切り替わります。ついでにTool -> Python Consoleも表示しておくといい感じです。
ではpythonファイルを作成して、以下を記述。
from __future__ import print_function
import torch
import matplotlib.pyplot as plt
#%%
x = torch.empty(5, 3)
print(x)
#%%
plt.plot([1,2,4,2])
plt.show()
#%%
という記述でブロックの区切り目が作れます。そしてCtrl+Enterで、現在カーソルがあるブロックのみを実行できるので便利です。
また、カーソルがある一行だけを実行というのもできます。ショートカットは"Execute selection"あたりで検索すると出てきます。
これで、ソースコード+コンソールで対話的に実行+グラフやドキュメント表示+変数の中身確認ができる環境ができました。何これ強化版spyder
環境設定周りはもっとうまくできそうな気もしますが、ひとまず既存のプロジェクトをIntelliJに認識さすということをしたかったので、ザクっとやった手順メモでした。
補足とか言い訳
- PyTorch動かすだけならAnacondaいらない可能性...
- IntelliJ IDEA上でプロジェクト作成&PyTorchインストールしたら、何も難しい設定いらない可能性...
既存のプロジェクトがある所に後からIntelliJ導入したので。。。