(追記) Pipenvとはを書き忘れていたので追記しました。
概要
Pipenvの話を聞いて、なんか良さそうだったのと、
pyenv-virtualenvはコマンドが重くなるという話を聞いて(どの程度かわからないけども)、
condaとpyenv-virtualenvとpyenvが混在してるカオスな状態を改善したいなと思ったので、
これらをアンインストールしてPipenvを入れてみました。
ちなみに私は、ローカル汚したくない、上記のようなごちゃごちゃするのがいやという理由で、
最近開発環境は全部Dockerで構築しているので、普段の開発にはあまり影響ないです(笑)。
Pipenvとは
npmやgemのようにPipfileとPipfile.lock生成し、
どのマシン上でも同じ環境になるように管理するためのツールです。
PipfileとPipfile.lockを共有し、pipenv installを実行することで同じ環境をセットアップできます。
パッケージのインストール先はデフォルトだと~/.local/share/virtualenvs/下に各仮想環境のディレクトリを作ってそこにインストールされるようです。
既存のツールをアンインストール
1. anacondaのアンインストール
まずはanacondaのアンインストールを行います。
私はpyenvから消したのですが、pyenv-virtualenvからcondaの仮想環境を作った影響か、
色々エラーが出てたので、こちらからやったほうが安全かと思います。
Uninstalling Anaconda — Anaconda 2.0 documentation
anacondaのアンインストールはホームディレクトリにある~/anaconda3を削除すればいいとのことです。
ただし、設定ファイル等が残るそうなので、それが嫌な場合は下記のようにanaconda-cleanパッケージをインストールして実行します。
anaconda-cleanの実行は~/anaconda3を削除する前に行ってください。
# anacondaのアンインストールパッケージをインストール
conda install anaconda-clean
# これを実行
anaconda-clean
# anacondaのディレクトリを削除
rm -rf ~/anaconda3
2. pyenv-virtualenvのアンインストール
brewでinstallしていた場合は、brewからアンインストールしてください。
gitでインストールしていた場合は、この後のpyenvのアンインストールで一緒に行われるので、pyenvのアンインストールを参照ください。
brew uninstall pyenv-virtualenv
私はなぜか2つのバージョンが入ってたらしく、2回コマンド実行しました(笑)
3. pyenvのアンインストール
brewでinstallしていた場合は、pyenv-virtualenvと同様にbrewからアンインストールしてください。
brew uninstall pyenv
gitでインストールした場合は、PYENV_ROOTのディレクトリを削除してください。
この時、PYENV_ROOTにpyenv-virtualenvが含まれているので、一緒にアンインストールされます。
# 一般的なインストール先ならこれ
rm -rf ~/.pyenv
4. 環境変数等の削除
.bash_profileや.bashrcなどに追記した環境変数などを削除します。
# pyenvのもの
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# pyenv-virtualenvのもの
eval "$(pyenv virtualenv-init -)"
# anacondaのもの
export PATH="$HOME/anaconda3:$PATH"
Pipenvのインストール
Pipenvのインストールはpipからインストールすれば終了。
pip install pipenv
これであとはプロジェクトのディレクトリで、下記のようにパッケージをインストールすると、
ディレクトリ下にPipfileとPipfile.lockが生成され、
npmやgemのようにパッケージを管理することができます。
pipenv install django
まとめ
MacBookのローカルのPythonの仮想環境が、なかなかにカオスだったので整理してみました。
Pipenv自体の使い勝手はこれからだけども、PythonだけじゃなくてRailsとかnpm扱う人は、
Pipenvのほうが扱いやすいんじゃないかと思います。
おまけ
MacBook買ってすぐにpyenv入れたせいか、OSのPythonにpipすら入ってなくてそのインストールに苦労しました。
あと、Pythonの各バージョンを個別にインストールするのが面倒だったので、pyenv入れ直しました(笑)
参考
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
pyenv自体のアンインストール方法
綺麗にAnacondaをアンイストールする方法 For macOS