(追記) 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