红联Linux门户
Linux帮助

python多版本管理centos下pyenv+virtualenv

发布时间:2017-01-18 09:46:21来源:linux网站作者:jaket5219999
在学习和利用python开发的很多情况下,需要多版本的Python并存。此时需要在系统中安装多个Python,但又不能影响系统自带的 Python。pyenv 就是这样一个 Python 版本管理器。
virtualenv可以搭建虚拟且独立的Python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。pyenv-virtualenv的github项目地址:https://github.com/yyuu/pyenv-virtualenv
首先我们可以用pyenv 安装多个python 版本,比如安装了2.5, 2.6, 3.3 三个版本。用户可以随意切换当前默认的python版本。但这时候,每个版本的环境仍是唯一的, 如果我们想在环境中安装一些库的话, 还是会导致这个版本的环境被修改。这个时候,如果我们用virtual env去建立虚拟环境, 就可以完全保证系统路径的干净。无论你在虚拟环境中安装了什么程序,都不会影响已安装版本的系统环境。
 
CentOS下安装:
以CentOS版本6.7为例(CentOS的其他版本也适用,Ubuntu也适用,只要把yum命令改成apt-get就可以了,其他都一样)
1.安装依赖包
yum -y install git gcc make patch zlib-devel gdbm-devel openssl-devel sqlite-devel bzip2-devel readline-devel
[root@localhost willie]# yum -y install git gcc make patch zlib-devel gdbm-devel openssl-devel sqlite-devel bzip2-devel readline-devel
2.安装pyenv(pyenv-virtualenv插件会自动安装)
安装(下面一条命令可以把pyenv和pyenv-virtualenv插件都装上):
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
[willie@localhost ~]$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
设置环境变量:
在/etc/profile.d/pyenv.sh文件里加入下面三行
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
然后运行:
source /etc/profile.d/pyenv.sh  
[willie@localhost ~]$ vim /etc/profile.d/pyenv.sh
[willie@localhost ~]$ source /etc/profile.d/pyenv.sh
 
使用篇
1.pyenv使用指南(OS X和Linux命令都通用)
pyenv versions查看系统的上安装的Python版本。 其中前面的*表示当前工作目录正在使用的版本,其中的 system表示系统自带的 Python 版本:
1].pyenv versions
[willie@localhost ~]$ pyenv versions
* system (set by /home/willie/.pyenv/version)
2].查看可安装的Python版本:
pyenv install --list
[willie@localhost ~]$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
...以下省略五千字
3].pyenv
install <version>安装其他版本的Python。例如安装2.7.13和3.6.0版本:
pyenv install 2.7.13  
pyenv install 3.6.0  
pyenv versions      #可以看到3个版本
[willie@localhost ~]$ pyenv install 2.7.13
Downloading Python-2.7.13.tar.xz...
-> https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
Installing Python-2.7.13...
Installed Python-2.7.13 to /home/willie/.pyenv/versions/2.7.13
[willie@localhost ~]$ pyenv install 3.6.0
Downloading Python-3.6.0.tar.xz...
-> https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
Installing Python-3.6.0...
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.6.0 to /home/willie/.pyenv/versions/3.6.0
[willie@localhost ~]$ pyenv versions
* system (set by /home/willie/.pyenv/version)
2.7.13
3.6.0
4]、pyenv
local <version>切换python版本。
示例:
$ cd                   #到home目录
$ mkdir python36      #创建python36的工作目录
$ cd python36
$ pyenv local 3.6.0    #使当前工作目录使用python3.6.0版本
$ python -V            #查看一下当前目录用python的版本,确实是3.5.1
Python3.6.0
$ pip -V               #查看一下pip版本,是3.6的pip
pip 9.0.1 from /home/willie/.pyenv/versions/3.6.0/lib/python3.6/site-packages (python 3.6)
$ cd                   #回到home目录
$ mkdir python2713     #创建python2.7.13的工作目录
$ cd python2713
$ pyenv local 2.7.13      #使当前工作目录使用python3.4.4版本
$ python -V            #查看一下当前目录用python的版本,确实是3.5.1
Python 2.7.13
$ pip -V               #查看一下pip版本,是2.7的pip
pip 9.0.1 from /home/willie/.pyenv/versions/2.7.13/lib/python2.7/site-packages (python 2.7)
其他版本的工作目录创建方法类似(如果是用系统自带版本,用pyenv
 local system即可使当前工作目录使用系统自带的Python2.7.10,不过一般很少用系统自带的Python)
2.pyenv-virtualenv使用指南
pyenv-virtualenv是用来创建一个干净的虚拟Python环境的命令,通常在创建干净的新项目时候使用。使用方法如下:
1].创建虚拟环境--pyenv virtualenv 版本号 虚拟环境名。
$ pyenv virtualenv 3.6.0 env360
创建项目,让项目使用干净的Python3.5.1的虚拟环境:
$ mkdir myproject
$ cd myproject
$ pyenv local venv-3.5.1
pyenv-virtualenv: deactivate
pyenv-virtualenv: activate venv-3.5.1
此后,我们就会发现:只要我们进入myproject目录,就会自动激活virtualenv,退出myproject目录,就会关闭virtualenv。
如果要关闭自动激活,可以运行命令pyenv deactivate,要重新启用的话,运行pyenv activate 虚拟环境名。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27908.html