在CentOS上升级Python的坑

25 篇文章 0 订阅

问题

CentOS 6中,默认安装了Python 2.6。而pipjupyter这样的常用工具是不支持Python 2.6的。为了使用这些工具,就必须将Python 2.6升级到Python 2.7以上的版本。那直接编译升级Python不就好了吗?

问题就在这里,CentOS 6中,有一些系统工具(比如yum)必须要使用Python 2.6。你升级到Python 2.7,他们就歇菜了。

所以呢,解决方法就是,让CentOS 6中,同时共存Python 2.6Python 2.7。咱们自己就用Python 2.7,让yum之类的系统工具使用Python 2.7

解决步骤

1 安装gcc之类的编译工具和依赖库

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2 下载Python 2.7

wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
unxz Python-2.7.10.tar.xz
tar -vxf Python-2.7.10.tar

3 配置编译过程,编译安装

./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

安装完成后,系统中共存了如下的Python命令。

  • python: Python 2.6.6
  • python2: Python 2.6.6
  • python2.6: Python 2.6.6
  • python2.7: Python 2.7.10

yum之类的系统工具,继续使用python(即Python 2.6.6),我们自己可以用python2.7来访问我们的Python 2.7.10

安装pip

Python升级完成后,系统中还不存在pip。我们下载并用python2.7来安装pip

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
python2.7 get-pip.py

使用virtualenv

在上面的所有步骤中,为了使用Python 2.7.10,我们都必须用命令python2.7。因为命令python默认访问Python 2.6.6
为了能在shell中直接使用python命令访问Python 2.7.10,我们安装virtualenv,为Python 2.7.10创建一个虚拟的sandbox

1 安装 virtualenv

如下命令为Python 2.7.10创建一个虚拟的sandbox

pip2.7 install virtualenv

2 创建virtualenv项目

执行如下命令,就在当前目录创建virtualenv项目。实际上就是生成了py27project目录,并把Python 2.7.10等代码拷贝到里面。

virtualenv py27project

3 使用 py27project

用source命令,就能激活py27project。注意当前路径下必须要存在py27project目录。

source py27project/bin/activate

激活后,可以看到shell命令行前自带(py27project)。在shell中就能用python命令访问Python 2.7.10了。

4 退出 py27project

deactivate命令就能退出激活的virtualenv环境。

参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值