飽きるまでやります。

私の私による私のためのメモ。内容に一切の責任を負えません。

condaの話

概要

anaconda何もわからん…のでメモします.

仮想環境を作る

conda create -n ENVNAME python=VERSION PACKAGE1 PACKAGE2…

pythonも厳密にはパッケージ扱いで,環境を作るときについでに環境にインストールするパッケージを指定できる.
パッケージのとこにanacondaを指定するとanacondaの全部のパッケージが入る.

python=を指定しない

python=を指定しない場合,仮にactivateしたところでpythonanaconda3/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をするのがいいらしい.

onoz000.hatenablog.com

もしくは参考ブログに書いてあるように,全部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指定で全部入り環境ができるってやつ,公式ドキュメントのどこに書いてあるんだか分からなかった…