目的
任意のバージョンのpythonを選べるようにし、常に最新のバージョンを利用できるようにする。
実行環境ごとに依存ライブラリが分離された環境を準備する。
システムワイドに環境を汚染せず、ユーザごとに任意のPythonを実行可能とする。
anyenv+anyenv-updateインストール
ndenvツールの導入を容易にしたり、envツールのアップデートを容易にするためにanyenvから入れていく。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
環境設定
Macの場合
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
Ubuntuの場合
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(anyenv init -)"' >> ~/.profile
$ exec $SHELL -l
$ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
pyenv+pyenv-virtualenvインストール
開発環境ごとに依存関係を分離するため、pyenv-virtualenvをあわせて導入。
$ anyenv install pyenv
$ exec $SHELL -l
$ git clone https://github.com/yyuu/pyenv-virtualenv ~/.anyenv/envs/pyenv/plugins/pyenv-virtualenv
任意のバージョンのpythonをインストール
ubuntuの場合の関連パッケージ導入
$ sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
$ pyenv install 3.x.x
最近、MojaveにアップグレードしたMacでインストールに失敗する場合
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
上記のようなエラーが出てインストールに失敗する場合は下記のコマンドを試す
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
上記のコマンドを実行しても下記のようなエラーがでる場合
installer: Error - the package path specified was invalid: '/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg'.
Command Line Tools (macOS 10.14) for Xcode 10パッケージを下記のURLからダウンロードしてくる
https://developer.apple.com/download/more/
Macでopensslが入っているにも関わらず3.7.0以上がインストールできない場合
下記のようなエラーが出る場合
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
下記の対応で、openssl1.1.1を使用
$ brew install 'openssl@1.1'
$ CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1)" pyenv install 3.7.0
インストール可能なバージョンの一覧を見たい場合
$ pyenv install --list
最新のバージョンのpythonがインストールできない場合
$ anyenv update
切り離された実行環境をカレントディレクトリに作成
$ pyenv virtualenv 3.x.x my-develop-environment
$ pyenv local my-develop-environment