什么是pyenv:
Python 2和Python 3之间存在着较大的差异,这就需要对python的版本进行管理,除此之外还需要对不同的软件包进行管理。一般开发环境中,使用两个工具:pyenv和virtualenvwrapper 。前着用于管理python版本,后者用于管理不同工作环境。
第一步:换源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
更换国内源(阿里源)
vim /etc/apt/sources.list
https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11Lf1ccH
sudo apt update
第二步:安装一些依赖(关于pyenv)
sudo apt install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel git
第三步:安装pyenv并配置环境变量
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
或者
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
查看可以通过pyenv安装的python版本
pyenv install --list
第四步:通过pyenv安装指定版本python
首先安装为了保证python正确安装的一些依赖
sudo apt-get install libc6-dev gcc
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
第一种安装方法:
pyenv install 3.6.8 -v
因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,而且经常会超时报错
第二种安装方法:
cd ~/.pyenv
sudo mkdir cache
wget -c http://mirrors.sohu.com/python/3.6.8/Python-3.6.8.tar.xz -P ~/.pyenv/cache/
pyenv install 3.6.8 -v
刷新pyenv数据库
pyenv rehash
切换全局python版本
pyenv global 3.6.8
查看当前安装的python的版本:
pyenv versions
第五步:python的虚拟环境部署
为了对不同的项目进行隔离,使每个项目使用独立的python解释器及依赖,需要配置python虚拟环境.
每个项目都有一个单独的python虚拟环境, 这样项目之前的python环境相互隔离, 便于使用和管理!
使用pyenv-virtualenv创建python虚拟环境,实质上是在~/.pyenv/versions/3.6.8/下创建一个文件夹evns,存放该虚拟环境python的解释器;
并且在~/.pyenv/下创建一个软连接,该虚拟环境可以通过pyenv进行管理。
举例:创建某个项目的虚拟环境(test为环境名)
pyenv virtualenv 3.6.8 test
查看, 发现在~/.pyenv/versions目录下会有一个test虚拟环境的软连接
ll ~/.pyenv/versions/
lrwxrwxrwx 1 root root 41 Dec 17 14:53 test -> /root/.pyenv/versions/3.6.8/envs/test
查看python虚拟环境
pyenv virtualenvs
切换python虚拟环境
pyenv activate test
或者
source activate test
最后,使用"source deactivate" 命令 或者 "pyenv deactivate"命令 退出python虚拟环境