condaの話
概要
anaconda何もわからん…のでメモします.
仮想環境を作る
conda create -n ENVNAME python=VERSION PACKAGE1 PACKAGE2…
python
も厳密にはパッケージ扱いで,環境を作るときについでに環境にインストールするパッケージを指定できる.
パッケージのとこにanaconda
を指定するとanacondaの全部のパッケージが入る.
python=
を指定しない
python=
を指定しない場合,仮にactivate
したところでpythonはanaconda3/bin/
とかにある.このインタプリタはパッケージを/anaconda3/lib/python3.6/site-packages/
あたりで探す.
ということは追加パッケージをインストールせずに,numpy
やらpandas
といった最初からanacondaに入ってるパッケージのみを使うならconda create
する必要がない.
追加パッケージをインストールする
python=
を指定しない場合,activate
したところでインタプリタはanacondaデフォルトのものを使ってるので,pip install
したらanacondaデフォルトの環境が汚れることになる.conda install pip
をすればpythonやらpipが環境にインストールされるが,ややこしいのでconda create
の時点でpython=
を指定した方が無難そう.
python=
を指定したら必要なパッケージをインストールしないといけないが,まずconda install
を使った方がいいらしい.condaになかったらpip install
をするのがいいらしい.
もしくは参考ブログに書いてあるように,全部pip install
がいいらしい.しかしこれをやるとanacondaとは…ってなってしまう.venv
でいいんでは…
jupyter notebookを使う
anacondaを使う人はだいたいjupyter notebookを使うんだと思う(適当).ところでjupyterとpythonは別なのでpython=
で環境を作ってactivate
しても,jupyter notebook
を打つとanacondaデフォルトのjupyterを使ってしまう.そうすると環境にインストールしたパッケージが使えないので,conda install jupyter
する必要がある.
venv
を使う
anacondaのpythonでも当然venv
は使えるけど今のanacondaのpythonは3.7だと思うので意味があるのかは謎.
所感
conda create -n ENVNAME python=VERSION anaconda
が一番anacondaのメリットを受けられるんじゃないかなあという感じ.もしくはanaconda指定+nbextensionを入れた環境を作っておいて--clone
するか.
パッケージの依存パッケージのバージョン違いとかで起こりうる問題を解決してくれるのがメリットだという話も聞いた.
バージョン管理+仮想環境したいだけならpyenv+venvでいいんでは(anaconda容量大きい…).
データ分析的なやつをしないが特別なパッケージが欲しい時はconda create
せずにvenv
するとかでも良さそう(anaconda指定は時間がかかる).
create
のときにanaconda
指定で全部入り環境ができるってやつ,公式ドキュメントのどこに書いてあるんだか分からなかった…