python多版本管理centos下pyenv+virtualenv

47 篇文章 1 订阅
在学习和利用python开发的很多情况下,需要多版本的Python并存。此时需要在系统中安装多个Python,但又不能影响系统自带的 Python。pyenv 就是这样一个 Python 版本管理器。

virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。

首先我们可以用pyenv 安装多个python 版本, 比如安装了2.5, 2.6, 3.3 三个版本。 用户可以随意切换当前默认的python版本。 但这时候, 每个版本的环境仍是唯一的, 如果我们想在环境中安装一些库的话, 还是会导致这个版本的环境被修改。 这个时候, 如果我们用virtual env去建立虚拟环境, 就可以完全保证系统路径的干净。无论你在虚拟环境中安装了什么程序, 都不会影响已安装版本的系统环境。

CentOS下安装(write at 20170117):

以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命令都通用)

  1. pyenv versions查看系统的上安装的Python版本。 其中前面的*表示当前工作目录正在使用的版本,其中 的 system表示系统自带的 Python 版本:
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
  1. 创建项目,让项目使用干净的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 虚拟环境名

reference:http://www.jianshu.com/p/1842a363257c


后记(write at 20170217),已经过了一个月,这段时间里,基本没使用过pyenv,做项目都是直接virtualenv、source bin/activate、deactivate,买了两本书《python web 开发实战》(董伟明)、《python 项目开发实战》(日),书里都是用virtualenv,没见提到pyenv的。所以,暂时不打算使用pyenv了。

另外,按之前的步骤安装完pyenv并设置path,重启后每次打开teminal,都会出现bash:pyenv:command can not find的消息,看着挺碍眼的,每次都是export PATH=$PATH:~/.pyenv/bin手动消除它,因为今天决定暂时不再用pyenv,所以把 /etc/profile   ~/.bash_profile   ~/.bashrc   /etc/profile.d/pyenv.sh  等文件里的pyenv相关行都注释掉,然后重启电脑,再打开终端就不再有这个烦人的消息,整个世界清净赛了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值