安装Python版本管理工具——Pyenv
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
exec $SHELL -l
注意:我用的是zsh,所以配置文件是.zshrc。如果你使用的是默认shell——bash,上述命令中的.zshrc需要替换成.bashrc。
通过下面这个命令查看可以安装的python版本:
pyenv install --list
查看好版本后,我选择安装3.6.8,但是安装之前,我们必须要安装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
centos7安装依赖包: sudo yum install -y gcc git openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel patch
上面的依赖包搞定之后,我们就可以安装python了:
pyenv install 3.6.8 -v
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包之后重新执行该命令。
安装完成之后,使用如下命令更新数据库:
pyenv rehash
查看当前已安装的python版本:
pyenv versions
* system (set by /home/yourname/.pyenv/version)
3.6.8
返回这两条就对了,*代表是当前系统正在使用的python版本是系统自带的。
设置全局的python版本:
pyenv global 3.6.8
pyenv versions
system
* 3.6.8 (set by /home/yourname/.pyenv/version)
当前的python版本已经变为了3.6.8。也可以使用 pyenv local
或 pyenv shell
临时改变python的版本。
查看python版本 python --version
注意:
- 输入python即可使用新版的python;
- 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
- 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.6.8下,不会和系统模块发生冲突;
- 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
利用virtualenv创建虚拟python环境
我们可以使用virtualenv来创建虚拟python环境,virtualenv本是一个独立的工具,官网:https://pypi.python.org/pypi/virtualenv,安装pyenv后,我们需要以插件的形式安装virtualenv。
pyenv-virtualenv插件安装
项目主页:https://github.com/yyuu/pyenv-virtualenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
source ~/.zshrc
zsh的配置文件不再是/.zsh_profile去调用/.zshrc,而是直接就是/.zshrc就可以了.所以对于zsh的一切设置,直接去/.zshrc中设置。
如果使用bash:
echo ‘eval “$(pyenv virtualenv-init -)”’ >> ~/.bash_profile
source ~/.bash_profile
创建一个3.6.8的虚拟环境:
pyenv virtualenv 3.6.8 env368
现在本机上已经创建了一个名为env368的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/
注意,命令中的 ‘3.6.8’ 必须是一个安装前面步骤已经安装好的python版本, 否则会出错。
我们可以继续通过 pyenv versions
命令来查看当前的虚拟环境, 结果如下:
* system (set by /home/tony/.pyenv/version)
2.7.15
3.6.8
env368
除了已经安装的python版本, 我们多出了一个env368的python虚拟环境。
切换和使用新的python虚拟环境
切换到新的虚拟环境的命令为:
pyenv activate env368
运行 ‘python’ 命令认证:
(env368)[root ~]# python
Python 3.6.8 (default, Mar 13 2019, 15:22:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
> > >
下面基本上你就可以在这个虚拟环境里面为所欲为了,再也不用担心系统路径被搞乱的问题了。
如果要切换回系统环境, 运行这个命令即可:
pyenv deactivate
那如果要删除这个虚拟环境呢?直接删除它所在的目录就好:
rm -rf ~/.pyenv/versions/env368/