pythonのアンインストール

pythonを使い始めて半年ほど経過しました。それなりに慣れてきた！初めてで慣れない環境構築を一生懸命やってたのが懐かしいくらいです。
ここ最近自分の周囲でもpythonを使いたい！という人がいたので環境構築の方法を教えるために、再度環境構築について調べてみました！そしたら自分の使っている現在の環境があまりにも力技で辻褄を合わせていたで、思い切って環境再構築をやってみました！！

`python`の環境構築編をUPしたので、環境構築のみをしたい方は[こちら](https://qiita.com/SonoT/items/091d2748deb16fb03653)をご覧ください。

#動作環境
- macOS High Sierra 10.13.1

###現在使っているパッケージ
- pyenv 1.1.5
- virtualenvwapper

今回はこの2つのパッケージをアンインストールし開発環境を一新します！

#環境のアンインストール
まずは現在の状況確認を行い、よくわからずにインストールしていった様々なものを全てアンインストールしていきます！
開発環境を構築していた当初、様々なサイトを回ってよくわからないのに次々にパッケージのインストールをしたせいで、PATHの設定がややこしくなったり、正常に動作しなくなったりして最終的に力技で現在の開発環境を整えたので、とりあえず今回を機にキレイにします！

###インストールしたパッケージの場所確認
私は現在`pyenv`で`python`のバージョン管理を行い、`virtualenvwapper`で仮想環境の管理を行なっています。正直このパッケージの組み合わせはあまり良くないそうです...
なので思い切ってここら辺を一旦アンインストールしていきます!

まずは今使っている`python`と`pyenv`と`virtualenvwapper.sh`がどこにあるのか確認します。

```bash:bash
$ which python
/usr/local/bin/.pyenv/shims/python

$ which pyenv
/usr/local/bin/pyenv

$ which virtualenvwrapper.sh
/usr/local/bin/virtualenvwrapper.sh
```

これでアンインストールしたいものがどこにあるのか確認できました。ここで注意事項ですが、ここに出てきたPATHにあるpythonが消してはいけない可能性があります。
`python`が本当に消しても大丈夫か不安な方は、こちらの記事が参考になったので先にこちらを読むことをお勧めします。
- [Macに入れた各種Pythonを全部アンインストールしてAnacondaを入れなおす](http://www.statsbeginner.net/entry/2015/11/05/020521)

###パッケージのアンインストール
`python`が`.pyenv`の下にあるので`.pyenv`ごと削除します。
この`.pyenv`は隠しファイルなので、コマンドラインを使い慣れていない方はこちらの記事を参考にしてみてください！
- [Mac で不可視ファイル（隠しファイル）を表示・削除する５つの方法](https://bowz.info/897)
- [find、grep、rmを組み合わせてファイルを削除する方法](http://it-memo.info/?p=1187)



次に`pyenv`と`virtualenvwrapper`に関係するパッケージをアンインストールしていきます。
まずこの2つのパッケージに関係しているファイルを探します。

```bash:bash
$ ls -l /usr/local/bin/ | grep pyenv
lrwxr-xr-x  1 user  admin     31 10 20 00:25 pyenv -> ../Cellar/pyenv/1.1.5/bin/pyenv
lrwxr-xr-x  1 user  admin     51 10 20 00:25 pyenv-activate -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-activate
lrwxr-xr-x  1 user  admin     53 10 20 00:25 pyenv-deactivate -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-deactivate
lrwxr-xr-x  1 user  admin     39 10 20 00:25 pyenv-install -> ../Cellar/pyenv/1.1.5/bin/pyenv-install
lrwxr-xr-x  1 user  admin     54 10 20 00:25 pyenv-sh-activate -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-sh-activate
lrwxr-xr-x  1 user  admin     56 10 20 00:25 pyenv-sh-deactivate -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-sh-deactivate
lrwxr-xr-x  1 user  admin     41 10 20 00:25 pyenv-uninstall -> ../Cellar/pyenv/1.1.5/bin/pyenv-uninstall
lrwxr-xr-x  1 user  admin     53 10 20 00:25 pyenv-virtualenv -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-virtualenv
lrwxr-xr-x  1 user  admin     60 10 20 00:25 pyenv-virtualenv-delete -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-virtualenv-delete
lrwxr-xr-x  1 user  admin     58 10 20 00:25 pyenv-virtualenv-init -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-virtualenv-init
lrwxr-xr-x  1 user  admin     60 10 20 00:25 pyenv-virtualenv-prefix -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-virtualenv-prefix
lrwxr-xr-x  1 user  admin     54 10 20 00:25 pyenv-virtualenvs -> ../Cellar/pyenv-virtualenv/1.1.1/bin/pyenv-virtualenvs
lrwxr-xr-x  1 user  admin     38 10 20 00:25 python-build -> ../Cellar/pyenv/1.1.5/bin/python-build
```
```bash:bash
$ ls -l /usr/local/bin/ | grep virtualenvwrapper
-rwxr-xr-x  1 root      admin  41697  9 27 15:09 virtualenvwrapper.sh
-rwxr-xr-x  1 root      admin   2210  9 27 15:09 virtualenvwrapper_lazy.sh
```
これら全て削除していきます。

まずは`.pyenv`から消していきます。

```bash:bash
rm -rf .pyenv/
rm: .pyenv//versions/2.7.14/lib/python2.7/site-packages/pbr-3.1.1.dist-info/RECORD: Permission denied
rm: .pyenv//versions/2.7.14/lib/python2.7/site-packages/pbr-3.1.1.dist-info/metadata.json: Permission denied
rm: .pyenv//versions/2.7.14/lib/python2.7/site-packages/pbr-3.1.1.dist-info/WHEEL: Permission denied

省略

rm: .pyenv//versions: Directory not empty
rm: .pyenv/: Directory not empty
```

あぁ...なんかたくさん出てきた..
とりあえず消えたか確認してみましょう。

```bash:bash
$ ls -a
.                         ghead                     gstdbuf                   pg_recvlogical
..                        ghostid                   gstty                     pg_resetwal
.pyenv                    gid                       gsum                      pg_restore
apm                       ginstall                  gsync                     pg_rewind
atom                      git-flow                  gtac                      pg_standby
```

消えてないですね...
調べたところ`Permission denied`とでたら`sudo`を使って消したらいいそうです。
気を取り直して再チャレンジ!!
問題なく削除できていた方はこれは飛ばしても大丈夫だと思います。

```bash:bash
$ sudo rm -rf .pyenv/
```

パスワードが要求されると思うので入力します。
またまた確認してみましょう！

```bash:bash
$ ls -a
.                         ghostid                   gstty                     pg_resetwal
..                        gid                       gsum                      pg_restore
apm                       ginstall                  gsync                     pg_rewind
atom                      git-flow                  gtac                      pg_standby
```

これでOK！ちゃんと`.pyenv`を消すことができました。
次は`pyenv`と`virtualenvwapper`を消します。

```bash:bash
$ find /usr/local/bin | grep pyenv | xargs rm

$ find /usr/local/bin | grep virtual | xargs rm
```

これでこの2つのパッケージが消えたはず！とりあえず確認してみましょう。

```bash:bash
$ which pyenv

$ which virtualenvwapper
```

これでパッケージ自体は消すことができました！

###PATH設定
パッケージの削除は一通り終えました！続いて設定していたPATHを削除します。私は`bash`を使っているので、その他のシェルを使っている人は各自で対応してください。

私は`bash_profile`に書き込んでいるのでここから消していきます。

```vim:vim
  3 if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
  4       export WORKON_HOME=$HOME/.virtualenvs
  5       source /usr/local/bin/virtualenvwrapper.sh
  6 fi

...省略...

 12 export PYENV_ROOT="/usr/local/bin/.pyenv"
 13 export PATH="$PYENV_ROOT/bin:$PATH"
 14 if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
```
この二つですね。これを消すのですが、またすぐに`python`の環境構築を行う場合、後で必要になるかもしれないので、必要な方はコメントアウトしておくことをお勧めします。

```vim:vim
  3 #if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
  4 #      export WORKON_HOME=$HOME/.virtualenvs
  5 #      source /usr/local/bin/virtualenvwrapper.sh
  6 #fi

...省略...

 12 #export PYENV_ROOT="/usr/local/bin/.pyenv"
 13 #export PATH="$PYENV_ROOT/bin:$PATH"
 14 #if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
```

これで一通りのアンインストールは完了しました！お疲れ様でした！

###Homebrewを使っていた場合
Homebrewを使ってインストールしたものがあるか確認します。

```bash:bash
$ brew list
autoconf		heroku-node		postgresql		sqlite
coreutils		libpng			pyenv			tree
freetype		openssl			pyenv-virtualenv	xz
gdbm			pcre			python3			zsh
heroku			pkg-config		readline
```
今回は`python`関係を消したいので`python3`と`pyenv`と`pyenv-virtualenv`を消します！

```bash:bash
$ brew uninstall python3
Uninstalling /usr/local/Cellar/python3/3.6.2... (3,660 files, 56.6MB)

$ brew list
autoconf		heroku-node		postgresql		tree
coreutils		libpng			pyenv			xz
freetype		openssl			pyenv-virtualenv	zsh
gdbm			pcre			readline
heroku			pkg-config		sqlite

$ brew list python3
Error: No such keg: /usr/local/Cellar/python3
```

これで`python3`は消すことができました！同様に`pyenv`と`pyenv-virtualenv`も消します！

```bash:bash
$ brew uninstall pyenv
Uninstalling /usr/local/Cellar/pyenv/1.1.5... (590 files, 2.3MB)

$ brew uninstall pyenv-virtualenv
Uninstalling /usr/local/Cellar/pyenv-virtualenv/1.1.1... (11 files, 24.7KB)

$ brew list
autoconf	gdbm		libpng		pkg-config	sqlite		zsh
coreutils	heroku		openssl		postgresql	tree
freetype	heroku-node	pcre		readline	xz
```

これでOKです！お疲れ様でした＼＼\\٩( 'ω' )و //／／

##ちょっとした雑談
今回は`python`の環境構築について書きましたが、改めて思わされたのが「ちゃんと調べて理解した上で環境構築をやりましょう」ということですね...
`python`に関しては環境構築に関する記事はたくさんあるので、一度全てを読んでから実行することをお勧めします。私のように複数の記事を読んで理解してない状態で異なるやり方を実行すると、おかしなことになる可能性があります。一途に進めていきましょう！

---
###参考にした記事
[Pythonの仮想環境構築(2017年版) pyenvとpyenv-virtualenvとvirtualenvとvirtualenvwrapperとpyvenvとvenv](https://qiita.com/maskedw/items/aaa2fd7abfd493cf2820)
[Macに入れた各種Pythonを全部アンインストールしてAnacondaを入れなおす](http://www.statsbeginner.net/entry/2015/11/05/020521)
[Mac で不可視ファイル（隠しファイル）を表示・削除する５つの方法](https://bowz.info/897)
[find、grep、rmを組み合わせてファイルを削除する方法](http://it-memo.info/?p=1187)
[【Mac】【Homebrew】Python 3 をアンインストールする手順](http://oki2a24.com/2016/04/16/uninstall-python3-with-homebrew-in-mac/)