Pythonの環境構築とか

Jupyter-notebookを去年のソフコンのときに脳死状態で入れたっきりだったので、改めて環境構築した(こちらのPCはMacBookPro)。

環境方針

  • pyenv,pyenv-virtualenvでバージョン管理と仮想環境の下地を作る
  • pyenvpythonのバージョン違いを入れたり、Anacondaをぶち込む
  • Anacondaで仮想環境を作成(ここにJupyterをぶち込む)
  • 仮想環境はローカル内でのみ使用

こんなもんか

実装

詳しくはこちらで確認を

github.com

github.com

  1. pyenvpyenv-virtualenvのインストール
    インストールはhomebrewで行なっていく(pipはインストール済み)。

    brew install pyenv
    brew install pyenv-virtualenv
    インストール済みだったらそれぞれバージョンのアップデートを忘れずに。

  2. パスを通す
    pyenv install --listでインストールしたいpythonのバージョンを確認して (| grep <バージョン名の一部>追加した方が楽か)pyenv install <バージョン名>でインストール。
    pyenvでインストールしたバージョンを使うにはパスを通しておかないと、Macに最初から入っているものが使用される。 というわけで.zshrcにパスを記述する。

    pyenvに関する設定
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    export PATH=$PYENV/shims:$PATH
    pyenv-virtualenvの設定
    eval "$(pyenv virtualenv-init -)"

  3. pyenvでバージョンの設定
    今の状態だとインストールしたバージョンが使えないため、pyenv global <バージョン名>で設定を行う(この場合は全ての場所で設定したバージョンが使用可能)。
    今回は実際に開発するディレクトリ内でpyenv local <Anacondaのバージョン名>を設定する。これによって、コマンドを入力したディレクトリ内に.pyenv-versionが作成される(この中にpythonのバージョンが書かれている)。pyenv localを設定したディレクトリ以下ではglobalで設定したバージョンとは違うものを使用できる。
  4. Anacondaの仮想環境作成
    Anacondaを使用できる環境に移動して仮想環境を作る。
    conda create -n <仮想環境名> python=<使用するpythonのバージョン名> anaconda jupyter
    これで、Anaconda内のモジュールとJupyterが仮想環境で使える。
  5. 仮想環境のアクティベート
    Anacondaの仮想環境をアクティベート(使用可能)にするには去年は
    source ~/.pyenv/versions/anaconda3-4.3.1/bin/activate <仮想環境名>
    のようにパスの指定をしないとできなかったが最近はcondaのコマンドでできるようになったらしい。
    condo activate <仮想環境名>
    仮想環境を止めたいときは
    conda deactivateとすればいい。

JupyterはJupiter-notebook &のようにバックグラウンドで動かしてます(ターミナルを閉じたい人はnohup jupiter-notebook <ログファイルの書き込み?>をしてるらしい)。

余談

pythonのバージョン3.7にTensorFlowをぶち込んだらボロクソに怒られて初手で詰んだ。