随着python 3的发布,大家在学习和使用python的时候可能会遇到多个版本切换的需求,如果每次切换都手动去修改环境变量就太麻烦了,通过pyenv这个工具,你可以随时切换任意版本的python用作当前开发环境!
工具/原料
-
linux系统
-
git命令工具
方法/步骤
1.安装 Python 的依赖包
在编译 Python 过程中会依赖一些其他库文件,因而需要首先安装这些库文件,已知的一些需要预先安装的库如下。在 Ubuntu下:
$ sudo apt-get update $ sudo apt-get install make build-essential libssl-dev zlib1g-dev $ sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl $ sudo apt-get install llvm libncurses5-dev libncursesw5-dev
2.安装 pyenv
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ vi ~/.bashrc export PYENV_ROOT="$HOME/.pyenv" export PATH = "$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" source ~/.bashrc # exec $SHELL #查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示 $ pyenv versions 3.pyenv常用命令 # 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。 $ pyenv versions system * 3.5.1 (set by /root/.pyenv/version) 3.5.1/envs/flask_py351 3.5.1/envs/pelican flask_py351 pelican # 查看当前处于激活状态的版本,括号中内容表示这个版本是由哪条途径激活的(global、local、shell) $ pyenv version 3.5.1 (set by /root/.pyenv/version) # 使用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 # 创建新的环境,位于 ~/.pyenv/versions/ $ pyenv virtualenv 2.7.1 env271 # 切换到新的环境 $ pyenv activate env271 # 退回到系统环境 $ pyenv deactivate # 删除新创建的环境 $ rm -rf ~/.pyenv/versions/env271/ # 创建新的环境,位于 ~/.pyenv/versions/ $ pyenv virtualenv 2.7.1 env271 # 切换到新的环境 $ pyenv activate env271 # 退回到系统环境 $ pyenv deactivate # 删除新创建的环境 $ rm -rf ~/.pyenv/versions/env271/ # 创建新的环境,位于 ~/.pyenv/versions/ $ pyenv virtualenv 2.7.1 env271 # 切换到新的环境 $ pyenv activate env271 # 退回到系统环境 $ pyenv deactivate # 删除新创建的环境 $ rm -rf ~/.pyenv/versions/env271/ # 创建新的环境,位于 ~/.pyenv/versions/ $ pyenv virtualenv 2.7.1 env271 # 切换到新的环境 $ pyenv activate env271 # 退回到系统环境 $ pyenv deactivate # 删除新创建的环境 $ rm -rf ~/.pyenv/versions/env271/ $ pyenv install --list $ pyenv 3.5.1 install -v ## refresh database $ pyenv rehash ## if not new installed version, do like : $ pyenv global 3.5.1
3.注意事項
首先系统中要有git命令工具
pyenv只针对当前用户的环境变量做控制
4.安装 pyenv-virtualenv插件
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv $ echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc $ source .bashrc
5.利用pyenv-virtualenv插件创建python虚拟环境
(1)创建一个3.5.3的环境:$ pyenv virtualenv 3.5.3 env353 (这条命令在本机上创建了一个名为env353的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/)
(2)切换和使用新的python虚拟环境: $ pyenv activate env353
(3)环境验证
此时:python版本已经是3.5.3, 而且是在虚拟环境之中(env353),这时可以对这个环境进行任意包的安装,且不会对其他环境造成影响
(4)离开环境:$ pyenv deactivate
参考:
1.http://www.jianshu.com/p/a23448208d9a
2.http://blog.csdn.net/magedu_linux/article/details/48528257
3.http://blog.csdn.net/guoyunfei20/article/details/73350393
4.http://python.jobbole.com/85587/
5.http://blog.csdn.net/eric_sunah/article/details/56289937
6.https://segmentfault.com/a/1190000004020387
7.http://www.cnblogs.com/npumenglei/p/3719412.html
8.Python多版本切换工具-Pyenv\virtualenv及Anaconda科学计算环境的配置
9.pyenv + anaconda 4.2 + python3.5+ ubuntu 16.04 安装
11.Ubuntu16.04下,通过pyenv安装anaconda,并安装tensorflow-gpu和opencv等库的简单方法