helloworlds

not a noun, it's a verb

【Python】pyenvをインストール&おまけhomebrew

pyenv

pyenvとは、pythonの環境管理ツールの1つで、 バージョン管理が容易に行えます。

macにはdefaultでPythonが入っていますが、pyenvを導入することで プロジェクト単位でのヴァージョン管理などの手助けになりそうですね。

pyenvのインストール元はこちらです。

インストール

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

$HOMEディレクトリに.pyenvが生成されます。

続いて.bash_profileに以下を記述します。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

.bash_profileを反映するのを忘れずに!

確認します。

$ pyenv -v

pyenv 1.2.3-45-g63c4b7f

簡単にコマンドを確認

  • インストールできるヴァージョンの一覧を確認
$ pyenv install --list

Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
略
  stackless-3.2.5
  stackless-3.3.5
  stackless-3.3.7
  stackless-3.4-dev
  stackless-3.4.1
  stackless-3.4.2
  stackless-3.4.7
  stackless-3.5.4
  • 任意のヴァージョンをインストール
$ pyenv install 3.6.2
  • インストールしたヴァージョンの確認
$ pyenv versions
  • バージョンを切り替える

global: 常時使用(グローバル)されるPythonのバージョンを設定する。

local: では、.python-versionというファイルが作成され、特定のディレクトリのみ任意のバージョンが使用できるようにする。

$ pyenv global 3.6.2
$ pyenv local 3.6.1
  • アンイストール
$ pyenv uninstall 3.6.1

おまけ

brew updateできない

今回のpyenvに限った話ではないのだが、pyenv installをするときになんかエラーが出た。

python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.2.tar.xz...
-> https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
Installing Python-3.6.2...
python-build: use readline from homebrew

BUILD FAILED (OS X 10.13.4 using python-build 1.2.3-45-g63c4b7f)

Inspect or clean up the working tree at /var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328
Results logged to /var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328.log

Last 10 log lines:
  File "/private/var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328/Python-3.6.2/Lib/ensurepip/__main__.py", line 4, in <module>
    ensurepip._main()
  File "/private/var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328/Python-3.6.2/Lib/ensurepip/__init__.py", line 189, in _main
    default_pip=args.default_pip,
  File "/private/var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328/Python-3.6.2/Lib/ensurepip/__init__.py", line 102, in bootstrap
    _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/private/var/folders/qm/crn7sz_16_q237fcphtfrr240000gn/T/python-build.20180419212305.32328/Python-3.6.2/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

調査をしてみると、HighSierraを搭載したから出てきたエラーみたい。 たしかに最近上記を実行したPCのOSをバージョンアップした...

なるほどなるほど、と色々試してみたが解決できなかった...

が、原因が当初よくわからなかったのでググり方をミスっていた。 要は、再度homebrewをインストールすれば解決するとのこと。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew updateもできたし、pyenv installも解決した。

よかったーーー

以上.