Mac OS X下安装pyenv

Pyenv是python的版本管理工具,pyenv之于python相当于rvm之于ruby。

在Mac OS X下,我用homebrew安装pyenv:

brew update
brew install pyenv

安装过程中,遇到了下面这个问题

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

直接安装openssl好像不管用,Google上搜了一下,在pyenv issue #263下找到了解决方法,运行

xcode-select --install

安装一下Xcode Command Line tools,再重新运行一下pyenv的安装命令就好了。

安装好pyenv后,会有以下提示

==> Caveats
To enable shims and autocompletion add to your profile:
  if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

To use Homebrew's directories rather than ~/.pyenv add to your profile:
  export PYENV_ROOT=/usr/local/opt/pyenv

按照提示,将以上的两条语句添加到profile里就可以了,由于我用的shell是zsh,所以我在.zshrc里追加

export PYENV_ROOT=/usr/local/opt/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

这里要注意,这两个语句的顺序不能颠倒,不然”pyenv global/local”将不起作用。

要使改变马上生效,运行一下

$SHELL -l

至此,pyenv的配置也完成了。

现在,我们可以查看一下可安装的python版本

pyenv install -l

选好要安装的版本后,运行下面这条命令安装

pyenv install <version>

安装完成之后需要对数据库进行更新:

pyenv rehash

我们可以用pyenv versions查看已安装的版本,要切换python版本,可以用

pyenv global/local <version>

运行global命令会切换全局的python版本;

而local命令则会在当前目录下创建.python_version,管理当前目录及其子目录(子目录没有.python_version的情况下)的python版本。

通常,我们在项目目录下设置一下local版本就可以了,原因如下

一般的,我们不修改全局版本,而使用期默认值system,因为在unix系统上,很多系统工具依赖于Python,如果我们修改了Python的版本,会造成绝大多数的依赖Python的系统工具无法使用,如果你不小心修改了,也不要紧张,使用global命令修改回来就可以了,有时候,你发现部分系统工具无法使用,你也可以看看你当前的Python版本。

参考

https://github.com/yyuu/pyenv#homebrew-on-mac-os-x

https://github.com/yyuu/pyenv/issues/263

https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#pyenv-install

https://github.com/lixm/pybooklet/blob/master/install.md

http://seisman.info/python-pyenv.html

http://v2in.com/pyenv-installation-and-usage.html

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.