【Pyenv】Pythonのバージョンが切り替わらなかった話

バージョン切り替えで躓くに至るまでの過程

Pythonでなんかすっぞ!

使いたいパッケージが3.6側に入っちゃってるからデフォの2.7.10から切り替えるぞ!

え?切り替わらないんだがw(ちなみに彼女はアスナ似w(聞いてないw))

とりあえず原因を探る

言わずもがなMacの話。
MacにはデフォでPython2.7がインストールされてるのだけど、時代は3.Xらしい[要出典]ので3.Xを使ってみようという雑魚初心者プログラミング齧り野郎の考え。

$ Python -V
Python 2.7.10
$ Python3 -V
Python 3.6.1

使いたいバージョンは下段のやつ。上段はデフォルトのPythonバージョン。
これを Python -V で3.6.1が出るようして、デフォで3.6.1を使うのが今回の目的。
3.6.1ってもう旧バージョンでは?ていうかいつ入れたっけ?などと思いつつ、去年だか一昨年だかイキってPythonをやってみようと思って入れたような記憶が蘇ってくる。

Pythonのバージョン切り替えにはPyenvというソフトが便利だそうなので、これを使ってみようとした。

$ brew install pyenv
$ pyenv -v
pyenv 1.2.5

brewHomebrewのこと、インストールに使うやつ(ざっくり)。
で、1.2.5がインストールされた。ここまでは良い。
3.6.1が既にあるわけだし、切り替えのコマンドを打てばそのまま切り替えられるんじゃない?と思って(情弱)以下のコマンドを入力。

$ pyenv global 3.6.1
pyenv: version `3.6.1' not installed

(‾◡◝ ;;;)❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓
妖怪ナニモワカラズなので脳内でX-ファイルのBGMが流れ出す。

調べてみるとpyenv上でインストールするみたい。なので、以下のコマンドを入力。

$ pyenv install 3.6.1

で、ここでインストールエラーが出た。なんでや。
ちなみに3.6.1以降のバージョンも出ているっぽいものの一応既に入れていた3.6.1で進めてみたいと思う。

対処法

完全に何も分かっていないので先人の知恵を頼りに手探りで進めていく。
Xcode command line developer toolsをインストールすればできるかも!みたいな記事を発見したので、そこを参考にインストール。

$ xcode-select --install

「ソフトウェアをインストール中」というMacユーザーなら見慣れた画面を眺めながらインストールが終わるのを待って、再び先ほどのコマンドを入力。

$ pyenv install 3.6.1
python-build: use openssl from homebrew
(省略)
Installed Python-3.6.1 to /Users/XXXXXX/.pyenv/versions/3.6.1

やったか!?(アニメでよくあるやってない時に言うセリフ)
XXXXXXは自分のユーザー名。
ただ先ほど起きたインストールエラーは出ていないので、出来たと見て良さそう。

$ pyenv versions
* system (set by /Users/XXXXXX/.pyenv/version)
  3.6.1

ᕙ('ω')ᕗ

$ pyenv global 3.6.1
$ python -V
Python 3.6.1

できた!!!これでバージョン切り替えが出来るようになったぜ。

$ which python
/Users/XXXXXX/.pyenv/shims/python

さっきまで /usr/bin/Python だったパスが.pyenvを通るようになった。これでやりたかった事の準備ができた。

ちなみに戻したい時は上と同じ手順を踏むだけ↓

$ pyenv global 2.7.10
$ python -V
Python 2.7.10

やりたかった事とは

Pythonツイッターライブラリ"Tweepy"を使ってみたかっただけ。
これのインストールにも手こずってたけど上記の事をやった上で再インストールしたらすんなりできた。

$ pip install tweepy
$ python twites.py

既に書いたコード(先人のものを丸パクリ)にインポートしてファイル名"twites.py"で保存して実行した。

クライアント名が「丹生谷森夏」になっているのは、自分の推しキャラであるため。数年前にTheWorldでvia芸(死語)をしたかった時に取得したものをそのまま流用した。

tweepyを使う本来の目的は、特定のワードが含まれているツイートの一括削除なんだけど、今はそこまでやる元気がないのでまたの機会にやっていこうと思う。


以上です。