Edited at

Pipenvが良さげなので、乗り換えてみた

(追記) Pipenvとはを書き忘れていたので追記しました。


概要

Pipenvの話を聞いて、なんか良さそうだったのと、

pyenv-virtualenvはコマンドが重くなるという話を聞いて(どの程度かわからないけども)、

condaとpyenv-virtualenvとpyenvが混在してるカオスな状態を改善したいなと思ったので、

これらをアンインストールしてPipenvを入れてみました。

ちなみに私は、ローカル汚したくない、上記のようなごちゃごちゃするのがいやという理由で、

最近開発環境は全部Dockerで構築しているので、普段の開発にはあまり影響ないです(笑)。


Pipenvとは

npmやgemのようにPipfilePipfile.lock生成し、

どのマシン上でも同じ環境になるように管理するためのツールです。

PipfilePipfile.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などに追記した環境変数などを削除します。


.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

これであとはプロジェクトのディレクトリで、下記のようにパッケージをインストールすると、

ディレクトリ下にPipfilePipfile.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