python多版本管理centos下pyenv+virtualenv

作者: jaket5219999 2017-01-18 09:46:21

在学习和利用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 安装其他版本的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 切换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

相关资讯