2018年7月19日星期四

homebrew 安装不同版本的 python

安装
brew update
brew install pyenv

配置
在 .zshrc 或 .bash_profile 文件最后写入:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if which pyenv > /dev/null;
  then eval "$(pyenv init -)";
fi

查看可安装的版本
pyenv install --list

安装python版本
pyenv install 3.6.3

查看当前已安装的python版本
pyenv versions

设置python版本
# 对所有的Shell全局有效,会把版本号写入到~/.pyenv/version文件中
pyenv global 3.6.3
也可以写成 pyenv global system 3.6.3

# 只对当前目录有效,会在当前目录创建.python-version文件
pyenv local 3.6.3

# 只在当前会话有效,等同于设置PYENV_VERSION环境变量
pyenv shell 3.6.3

优先级:PYENV_VERSION > local > global

$ pyenv rehash  # 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)

重置版本设置
只有 pyenv shell 和 pyenv local 命令有--unset参数
pyenv shell --unset
pyenv local --unset

虚拟环境
个人觉得virtualenv就够了, 用不到pyenv-virtualenv

pyenv-virtualenv 安装
brew update
brew install pyenv-virtualenv

pyenv-virtualenv 配置
在 .zshrc 或 .bash_profile 文件最后写入:
# pyenv-virtualenv
if which pyenv-virtualenv-init > /dev/null;
  then eval "$(pyenv virtualenv-init -)";
fi

创建虚拟环境
$ pyenv virtualenv 2.7.10 env-2.7.10
若不指定python 版本,会默认使用当前环境python版本。环境的真实目录位于 ~/.pyenv/versions 下

列出当前虚拟环境
pyenv virtualenvs
pyenv activate env-name  # 激活虚拟环境
pyenv deactivate #退出虚拟环境,回到系统环境

删除虚拟环境
pyenv uninstall my-virtual-env
rm -rf ~/.pyenv/versions/env-name  # 或者删除其真实目录

问题解决
mac安装有可能会出现 zipimport.ZipImportError: can't decompress data; zlib not available 的问题,解决方法:CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.x.x

参考:http://einverne.github.io/post/2017/04/pyenv.html
https://github.com/eteplus/blog/issues/4

没有评论:

发表评论