本文转载自: http://www.centoscn.com/image-text/install/2016/0323/6906.html

CentOS的设计理念中有一点是:持久可用。要达到这个目的,CentOS的ABI、API必须是稳定兼容的。这就造成了某些软件不可能随意地升级到最新版本。以Python为例,CentOS6.x中的Python版本一直就是2.6,无论现在的Python做了多少升级,引入了多少新包,加入了多少新功能,解决了多少Bug。

这样做当然有它的好处。例如企业可以一次投入,在整个系统的维护期内(10年)可以不需要因为兼容性问题而被动进行软件的升级。但是这样的策略也有它的弊端。例如无法使用更新的功能,更好的解决方案。

以Python来说,Python2.7引入了argprase这个命令行解析模块,在Python2.6中就只能用optprase这个模块。optpraser这个模块有一个问题,在使用PyInstaller制作可执行文件后,执行时显示不出中文字符。这或许也有PyInstaller的原因,但是往往第三方软件包的维护者只关心主流的版本,对于其它认为“非主流”的版本就没有投入太多的精力。要解决PyInstaller中文乱码的问题,最直接是还是安装Python2.7,使用argprase模块,然后使用相应版本的PyInstaller生成可执行文件。

那么,怎样在CentOS6.x上安装Python2.7呢?因为要保证“持久可用”,也就是说用Python2.6写的代码要一直能够正常地运行在系统中。CentOS并不提供(或者至少没有简单的,安全的方法)Python的直接升级。CentOS 的维护者当然也想到了需要对“特定情况”作出处理。所以给出“软件选集(SCL)”。 
CentOS6.x提供了如下的软件选集

* Ruby 1.9.3 (ruby193)
* Python 2.7 (python27)
* Python 3.3 (python33)
* PHP 5.4 (php54)
* Perl 5.16.3 (perl516)
* Node.js 0.10 (nodejs010)
* MariaDB 5.5 (mariadb55)
* MySQL 5.5 (mysql55)
* PostgreSQL 9.2 (postgresql92)

要安装这些高版本的软件,首先需要安装centos-release-SCL

yum install centos-release-SCL

然后安装所需的软件,以Python为例:

yum install python27

安装完成后,并不意味着系统中自带的Python2.6被升级到2.7版本,事实上,安装python27后对原有系统中的python2.6没有任何影响。因为python2.7是被安装到

/opt/rh/python27

中。要使用python2.7,需要执行:

scl enable python27 bash

它将使python2.7在当前的bash下可以使用。


接下来介绍如何使用pip安装Python的第三方软件包。 
首先下载ez_setup.py:

wget http://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

在执行了”scl enable python27 bash“的终端中执行如下命令:

python ez_setup.py 
easy_install-2.7 pip

然后就可以使用pip安装软件了。 
这里要注意,每次关闭终端后,python都将变成系统自带的2.6版本。要使用2.7版本,需要重新执行:

scl enable python27 bash

[转载] centos6.x x64 安装python2.7的更多相关文章

  1. CentOS6下编译安装Python2.7.6方法

    关于在CentOS6下编译安装Python2.7.6的方法非常的多了,小编以前也介绍过相关的文章了,下面一聚教程小编再来为各位介绍一下吧,希望文章能帮助到各位.   CentOS下面Python在升级 ...

  2. CentOS6.5上安装Python2.7和PIP

    目前大部分用户使用的CentOS6.5上默认的Python还是2.6版本.升级到Python2.7碰到很多问题.本文将介绍如何安装Python2.7. 1. 安装必要的准备包 安装过程将用到gcc,方 ...

  3. CentOS6.5编译安装Python-2.7

    zlib.x86_64 * yum install zlib.x86_64 openssl-devel.x86_64 * yum install openssl-devel.x86_64 Python ...

  4. centos6.9 x64安装http,php5.6,curl5.29,mysql最后安装zabbix3.4+zabbix客户端

    https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirementshttps://www.zabbix.com/d ...

  5. 在CentOs6.5下安装Python2.7.6和Scrapy

    总在网上看大家的安装教程,这回自己也贡献一份!!! 和民航大学合作项目,去给人家装环境,连简单的Scrapy都没装上,虽然有对方硬件设施坑爹的因素,但主要还是自己准备不充分. 一份好的安装文档应该是可 ...

  6. centos6.5Xen4.2安装

    官方安装文档:http://xen.crc.id.au/support/guides/install/ 一.环境说明 1. 本文采用CentOS6.5 x64,安装开发包及开发工具. 2. 关闭sel ...

  7. centos6最小化安装默认没有 NetworkManager服务

    转载Centos6最小化安装中设置网卡默认启动   Centos 6.0版本提供了一个"最小化"(Minimal)安装的选项.这是一个非常好的改进,因为系统中再也不会存在那些不必要 ...

  8. CentOS6.8 x64+Nginx1.3.8/Apache-httpd 2.4.3+PHP5.4.8(php-fpm)+MySQL5.5.28+CoreSeek4.1源码编译安装

    系统为CentOS6.8 x64服务器版精简安装. 准备工作 部署安装目录 /usr/local/* /var/lib/* /var/lib64/* 下载源文件 #cd /usr/local/src ...

  9. 【转载】CentOS6.5_X64下安装配置MongoDB数据库

    [转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09|  分类: 默认分类|举报|字号 订阅      下载LOFTER客户端 本文转载自zhm&l ...

随机推荐

  1. climit 头文件的内容

    int.long和long long C++的short.int.long和long long类型通过使用不同数目的位来存储值(关于位的概念自行了解),最多能够表示4中不同的整数宽度.C++提供了一种 ...

  2. P3414 SAC#1 - 组合数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...

  3. Android Studio的使用(五)--导入第三方Jar包

    本篇博文将介绍一下如何导入第三方Jar包. 1.首先将下载的Jar包直接Copy到libs目录下面,然后右击Jar文件,点击Add As Library后,在出现的弹出框点击确定即可. 2.打开bui ...

  4. iptables详解--转

    出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定 ...

  5. Android的Activity跳转动画各种效果整理

    Android的Activity跳转就是很生硬的切换界面.其实Android的Activity跳转可以设置各种动画,本文整理了一些,还有很多动画效果,就要靠我们发挥自己的想象力 大家使用Android ...

  6. 修改sqlserver的数据库排序规则语句

    alter database SOETMS collate Chinese_PRC_CI_AS

  7. apache2.2.25+mod_jk-apache-2.2.2.so+apache-tomcat-7.0.56集群

    1.安装httpd-2.2.25-win32-x86-no_ssl.msi 按默认安装路径,我电脑如果自定义的话安装不了 2.下载mod_jk-apache-2.2.2.so 3.下载tomcat 我 ...

  8. (转)初识suse——linux

    Linux这种系统很奇怪,差不多每种不同的版本,它所使用的安装等一些重要命令皆有所变化.假若,你要熟练掌握一种OS,那么如果安装软件/应用,那是入门的第一步.   安装命令中: RedHat.Cent ...

  9. js实现input button从不可用变为可用

    有时候明明是些很简单的东西,因为自己的一些大意,可能就在那圈子里一直兜兜转转,好久都绕不出来. 所以我也愿意把这些很简单的愚蠢写出来,与君共享~ 首先大家知道<input>有一个名叫“bu ...

  10. n个List<Map>合并,Map中某属性值相等的value值相加

    List<Map> maps1 =[{"bigtypes":100,"num":400},{"bigtypes":200,&qu ...