(一)安装pyenv
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
(二)使用pyenv
$ pyenv versions
system
2.7.12
* 3.6.0 (set by /home/huayun/.python-version)
$ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.1)
setuptools (28.8.0)
# 使用 python-build(一个插件) 安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。
$ pyenv install -v 2.7.3
# 卸载
$ pyenv uninstall 2.7.3
# 为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims,
# 因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
$ pyenv rehash
# 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
$ pyenv global 3.4.0
# 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。
# 通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。
#若找不到,就用 global 版本。
$ pyenv local 2.7.3
# 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
# 这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。
$ pyenv shell pypy-2.2.1
$ pyenv shell --unset
(三)一些错误及解决方法
3.1 缺OpenSSL lib
sudo apt-get install libssl-dev
3.2 pip使用报错
$ pip list
Traceback (most recent call last):
File "/home/huayun/.pyenv/versions/3.6.0/bin/pip", line 4, in <module>
import re
File "/home/huayun/.pyenv/versions/3.6.0/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
解决方法:
unset PYTHONPATH