踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位。
pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应的python版本,使用pyenv以后,可以在服务器上安装多个不同的python版本,版本切换方便,能够更好的满足我们的需求。
virtualenv是一个管理不同项目的工具,用以隔离不同项目的工作环境,在同一个python版本实现不同的环境需求。
pyenv与virtualenv配合使用,可以更好的管理我们在Linux系统中python环境。
1,开始prenv的安装:
下载项目到本地
yum install git -y git clone https://github.com/pyenv/pyenv.git ~/.pyenv
配置环境变量
echo 'export PATH=~/.pyenv/bin:$PATH' >> ~/.bashrc echo 'export PYENV_ROOT=~/.pyenv' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source 命令重新载入配置文件:
source ~/.bashrc #验证pyenv是否正确安装: pyenv --help #查看pyenv支持安装的python版本: pyenv install --list
安装一下python的依赖:
yum install gcc -y yum install openssl-devel bizp2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel -y
到了这里我们就可以用pyenv 安装不同的python 版本了,这里的3.7.2与2.7.5是要安装的python版本。
这里要是用官方的源地址下载会非常的慢,甚至不动,,我们修改为国内的下载地址,首先去淘宝下载源: http://npm.taobao.org/mirrors/python 找到自己需要安装的版本
比如我拿了这两个地址:
http://npm.taobao.org/mirrors/python/2.7.5/Python-2.7.5.tar.xz
http://npm.taobao.org/mirrors/python/3.7.2/Python-3.7.2.tar.xz
然后我分别修改这两个文件
~/.pyenv/plugins/python-build/share/python-build/2.7.5
~/.pyenv/plugins/python-build/share/python-build/3.7.2
退出保存,然后执行下面命令下载速度就会非常的快
pyenv install -v 3.7.2 pyenv install -v 2.7.5
这里有几个pyenv常用命令:
#查看当前安装的python版本 pyenv versions #切换选择当前python版本 pyenv global 3.7.2 #删除python版本 pyenv uninstall 2.7.2
pyenv安装完成!
2,开始安装 pyenv-virtualenv
下载项目到本地
1 git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
#配置环境变量 echo 'echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile #source 命令重新载入配置文件: source ~/.bashrc #查看是否安装成功 pyenv help virtualenv
创建python2.7.5版本的虚拟工作环境:project_27_1 和 创建python3.7.2版本的虚拟工作环境:project_37_1
pyenv virtualenv 2.7.5 project_27_1 pyenv virtualenv 3.7.2 project_37_1 #查看创建的工作环境 pyenv virtualenvs
使用实例:
#进入环境project_27_1 pyenv activate project_27_1 #在该环境安装0.8版本的flask pip install flask==0.8 #退出当前工作环境 pyenv deactivate #删除虚拟环境first_project pyenv virtualenv-delete project_27_1
总结
以上所述是小编给大家介绍的pyenv与virtualenv安装实现python多版本多项目管理,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!