pyenv
pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。pyenv官方地址 https://github.com/pyenv/pyenv-installer
- 安装pyenv
#1 安装pyenv,在命令行下键入:
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
#默认安装到当前用户的工作目录下的.pyenv,我们可以查看一下
$ cd ~
$ ls -la
#2 将安装路径写入~/.bashrc
将以下三条语句写入 ~/.bashrc
export PATH="/home/zhu/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
$ source ~/.bashrc #配置立刻生效
$ echo $PATH
#如果路径第一个结尾是shims则表示成功
/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
#也可以将上面三条命令写入到~/.barsh_profile,然后重启一下shell
#3 更新一下
$ pyenv update
- 使用pyenv
#1.查看pyenv当前支持哪些Python版本
python@ubuntu:~$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
...
#2.列出pyenv中所有可用的python版本
python@ubuntu:~$ pyenv versions
system
3.5.4
* 3.6.4 (set by /home/python/.pyenv/version) # *表示当前使用的3.6.4版本
#3.选择指定的python版本
python@ubuntu:~$ pyenv global 3.5.4 #设置指定的版本
python@ubuntu:~$ python
Python 3.5.4 (default, Mar 29 2018, 11:02:03) #已经切换到了3.5.4
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。
#4. 删除指定python版本
python@ubuntu:~$ pyenv uninstall 3.5.4
pyenv: remove /home/python/.pyenv/versions/3.5.4? y
python@ubuntu:~$ pyenv versions
system
* 3.6.4 (set by /home/python/.pyenv/version)
- 安装python
#1.在安装python之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的:
$ sudo apt-get install libc6-dev gcc
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
#2. 安装python
$ pyenv install 3.6.4 -v #-v 以日志模式显示安装过程
#因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装,下面是可选的安装模式
$ cd ~/.pyenv
$ sudo mkdir cache
$ wget -c http://mirrors.sohu.com/python/3.6.4/Python-3.6.4.tar.xz -P ~/.pyenv/cache/
$ pyenv install 3.6.4 -v
#3.更新pyenv数据库
$ pyenv rehash
#4.列出所安装的python版本
$ pyenv versions
#5.切换python版本
$ pyenv global 3.6.4
#6.验证版本
$ python
- 创建一个virtualenv的虚拟环境
#1.首先创建项目目录
$ sudo mkdir -p myproject/blog
cd myproject/blog
#2.创建项目的虚拟环境
#用法:pyenv virtualenv python版本号 虚拟环境名
$ pyenv virtualenv 3.6.4 env36 #注意版本号必须是已经安装的,否则会报错
#3.切换到虚拟环境
python@ubuntu:/myproject/blog$ pyenv activate env36
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(env36) python@ubuntu:/myproject/blog$ # (env36)表示该项目处于虚拟环境中
#4. 切出虚拟环境
(env36) python@ubuntu:/myproject/blog$ pyenv deactivate env36
#5. 删除virtualenv
pyenv uninstall 虚拟环境名称
#6. 列出所有的虚拟环境
pyenv virtualenvs