pyenvをインストール
brewコマンドを実行
pyenvをインストールするには下記コマンドを実行
brew install pyenv
.zprofileに設定を追記
ターミナル起動時にpyenvが自動実行させるように、.zprofileに下記設定を追加
echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.zprofile
設定を反映
sourceコマンドを利用して、.zprofileに追記した設定を反映
source ~/.zprofile
Pythonをインストール
Pythonのバージョンを調
python --version
Python 3.9.0をインストール
pyenv install 3.9.0
他のバージョンをインストールしたい場合は、インストール可能なバージョンを確認
pyenv install --list
Python環境の切り替え
システムのPython環境からpyenvでインストールしたPython環境に切り替える
pyenv global 3.9.0 python --version
pyenvとは
pythonのバージョンを簡単に切り替えることができるようにしてくれるツールです。2系列と3系列との切り替えに便利です。また、ディレクトリごとにpythonのバージョンを切り替えることができます。
pyenvのインストール
ではまず、 pyenvをインストールしましょう。gitから持ってくる場合上のコマンドを、brewが使える場合は下のコマンドを利用してもできます。
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ brew install pyenv
bash_profileの編集
次にpyenvのパスを通すためにbash_profileを編集します。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
またはvimを使ってbash_profileに直書きしても構いません。
$ vim ~/.bash_profile export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
最後にbash_profileの保存を適用します
$ source ~/.bash_profile
pyenvでpythonをインストール
バージョン切り替えを体験するために2つほどバージョンが違うpythonをインストールしてましょう。インストールできるか確認をしたければ3つめのコマンドを利用すると一覧が確認できます。
$ pyenv install 2.7.10 $ pyenv install 3.5.0 $ pyenv install --list
pyenvでバージョンを切り替えてみる
バージョンの切り替えをしてみます。localの場合は今いるディレクトリに、globalの場合は全体に反映されます。
$ pyenv local 2.7.10 $ pyenv global 3.5.0
ここできちんと変更が反映されているか確認するためpythonのバージョンを調べます。
$ python --version Python 2.7.10
このように変更が反映されていれば問題ありません。
反映されていなければ下の記事をお試しください。
pyenvでのpythonのバージョンがpython -vと違う時の対処法
例えばpyenvでバージョンを2.7.10に切り替えたはずなのに、pythonのバージョンを調べたら3.5.0だった…
なんてことがあるかもしれません。
$ pyenv versions system * 2.7.10 3.5.0 $ python --version Python 3.5.0
その場合、whichコマンドでパスを表示してみてください。
$ which python /usr/bin
このようになっていたら、それはデフォルトでPCに入っているpythonを参照してきています。もしここでpyenvの方を参照するようにパスを変更したければ、以下のように編集してください。
$ vim /etc/paths /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin
これで、パスがusr/binよりも/usr/localを優先されるようになります。確認のためwhichコマンドをもう一度入力すると
$ which python /usr/local/bin/pyenv
のようになるはずです。
最後にもう一度pyenvのpythonのバージョンがpythonのバージョンと一致するか確かめてみてください。
参考リンク集
参考にさせていただいたリンクです。もっと詳しく知りたい方はぜひご活用ください。
– pyenv 利用のまとめ
– pyenvを使ってMacにPythonの環境を構築する
– 書き込み権限のないユーザでファイルを編集してしまったとき Can’t open file for writing
はじめに
pythonではpyenvというツールを使うことで、複数バージョンのpython環境を簡単に切り替えることができるようになります。2系列と3系列との切り替えにおいて重宝します。では、早速pyenvによる、pythonのバージョンを変更の仕方を説明します。
開発環境
OS:macOS Mojave(10.14.4)
インストール可能なpythonのバージョンを確認する
$ pyenv install --list
ここでpyenvがインストールできていない人はHomebrewを使ってインストールしましょう。
$ brew install pyenv
それぞれのバージョンのpythonをインストールする
$ pyenv install 3.7.2
$ pyenv install 2.7.10
変更可能なpythonのバージョンを確認する
$ pyenv versions system * 3.7.2 (set by /Users/user/.pyenv/version)
現在のpythonのバージョンを確認する
$ python --version Python 2.7.10
pythonのバージョンを変更可能なバージョンに変更する
$ pyenv global 3.7.2 $ python --version Python 2.7.10
ここでpythonのバージョンが適切に変更されていませんね。次のコマンドを入力してください。(以下記事が参考になります。)
pyenvがバージョンを切り替える仕組みを理解する
$ eval "$(pyenv init -)"
再度、pythonのバージョンを確認してみましょう。
$ python --version Python 3.7.2
きちんと変更できましたね。
仕組みとしてはeval “$(pyenv init -)”で環境変数PATHに.pyenv/shimsを追加し、pyenv globalやpyenv localで該当バージョンのpythonを.pyenv/shimsにコピーしているようです。
(pyenvがバージョンを切り替える仕組みを理解するより引用)
参考記事
pyenvがバージョンを切り替える仕組みを理解する
pyenvを使って、pythonバージョンの変更
下記の Python バージョンを pyenv を用いてインストールするとき、
ビルドに失敗する場合にお試しください。
確認済みバージョン
- 3.9.0
- 3.8.6
問題
- macOS BigSur 11.0 beta、11.1 Beta
- Xcode 12.2 beta 3
- Command Line Tools for Xcode 12 beta 3
上記のケースでpyenv install 3.9.0
pyenv install 3.8.6
を実行すると、下記のようにビルドに失敗するshell
.. BUILD FAILED (OS X 11.0 using python-build 20180424) .. make: *** [install] Error 1
解決策
Step1: XCode コマンドラインツールの設定
Step2: pyenv に指定の Python をインストール
シェルで下記を実行shell
LDFLAGS="-L$(xcrun --show-sdk-path)/usr/lib" pyenv install 3.9.0
確認
インストールを確認shell
pyenv versions * system (set by /usr/local/var/pyenv/version) 3.9.0
グローバルに設定
シェルをリロード
Python バージョンの確認shell
pyenv global 3.9.0 zsh -l python --version Python 3.9.0
無事 3.9.0
になりました。
Source:
https://github.com/pyenv/pyenv/issues/1643
https://medium.com/@koji_kanao/install-python-3-8-0-via-pyenv-on-bigsur-b4246987a548