安装前,操作系统软件包准备
编译python要安装development tools。此外,还要安装一些其他的libs,没有这些libs,python的interpreter可能会无法正常工作

# 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

安装前要考虑的事项

1、Unicode

python 3.2 以及之前的版本,没有特殊的原因都建议python开启UTF-32支持功能,虽然会增加内存的使用,但会提高兼容性。 在3.3中,对Unicode的支持已经进行了重写,会尽可能将字符串以最高效的编码形式存储。

在python 2.7中,开启UTF-32支持功能,在configure时需要加上"--enable-unicode=ucs4";

在3.2版本中,开启UTF-32支持功能,在configure时需要加上"--with-wide-unicod"

2、Shared library

建议将python以shared library的方式进行编译。 目前linux的分发版本都是将其编译为shared library,而且有些第三方工具,比如:mod_wsgi和Blender都需要这些库。

有两种方式将python编译为shared library:

  (1)编译的时候,configure命令指定:  LDFLAGS="-Wl,-rpath /usr/local/lib"

  (2)在配置文件/etc/ld.so.conf中添加一行:  /usr/local/lib  然后执行以下命令,使动态链接生效:  /sbin/ldconfig

3、make altinstall

使用"make altinstall"来代替"nake install",这样可以避免一些问题的产生。"make install"会在文件系统中安装两个不同版本的python,增加出现问题时的诊断难度。

make install的结果:

[root@rhce7 bin]# ll
total
-rwxr-xr-x. root root Aug : 2to3
-rwxr-xr-x. root root Aug : idle
-rwxr-xr-x. root root Aug : pydoc
lrwxrwxrwx. root root Aug : python -> python2
lrwxrwxrwx. root root Aug : python2 -> python2.
-rwxr-xr-x. root root Aug : python2.
-rwxr-xr-x. root root Aug : python2.-config
lrwxrwxrwx. root root Aug : python2-config -> python2.-config
lrwxrwxrwx. root root Aug : python-config -> python2-config
-rwxr-xr-x. root root Aug : smtpd.py
[root@rhce7 bin]#

make altinstall的结果:

[root@rhce7 bin]# ll
total
-rwxr-xr-x. root root Aug : 2to3
-rwxr-xr-x. root root Aug : idle
-rwxr-xr-x. root root Aug : pydoc
-rwxr-xr-x. root root Aug : python2.
-rwxr-xr-x. root root Aug : python2.-config
-rwxr-xr-x. root root Aug : smtpd.py
[root@rhce7 bin]#

下载、编译、安装

# Python 2.7.:
wget http://python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
tar xf Python-2.7..tar.xz
cd Python-2.7.
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall # Python 3.4.:
wget http://python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
tar xf Python-3.4..tar.xz
cd Python-3.4.
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

安装结束后就可以看到
/usr/local/bin/python2.7 或 /usr/local/bin/python3.4

下载和安装setuptools和pip
作为官方的包管理器,Setuptools已经替代了Distribute来管理Python Package Index中的包。每个python interpreter需要安装其自己的Setuptools。
pip建立在Setuptools基础上,可以提供其它一些管理包的功能

# First get the setup script for Setuptools:
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py # Then install it for Python 2.7 and/or Python 3.4:
python2. ez_setup.py
python3. ez_setup.py # Now install pip using the newly installed setuptools:
easy_install-2.7 pip
easy_install-3.4 pip # With pip installed you can now do things like this:
pip2. install [packagename]
pip2. install --upgrade [packagename]
pip2. uninstall [packagename]

安装结果如下所示: /usr/local/lib/pythonX.Y/site-packages/ (X.Y是python的版本)。

如果安装的是2.7版本,建议安装virtualenv,并学会使用它。 virtualenv可以创建隔离的python环境。如果是3.3版本,默认已经将virtualenv内嵌进来。

每个隔离的python环境可以有其自己的版本和程序包。很适用于有多个projects、或同一个project有多个版本的环境。

在rhel6上安装Python 2.7和Python 3.3的更多相关文章

  1. 在CentOS上安装Python

    首先我们需要在服务器上安装一个比较新的 Python,CentOS 5.8 默认装的 Python 是 2.4.3. [root@nowamagic ~]# python -V Python 我们需要 ...

  2. 洗礼灵魂,修炼python(2)--python安装和配置

    安装python和基本配置: python官方下载地址:www.python.org 打开网站,然后下载对应(32位和64位,windows版还是linux版)的版本,你可以选择python3或者2, ...

  3. Red Hat Enterprise Linux 6上安装Oracle 11G(11.2.0.4.0)缺少pdksh包的问题

    RHEL 6上安装Oracle 11G警告缺少pdksh包 前言 相信很多刚刚接触学习Oracle的人,在RHEL6上安装11.2.0.3 or 11.2.0.4这两个版本的时候, 都遇到过先决条件检 ...

  4. python环境搭建-在Windows上安装python3.5.2

    在Windows上安装Python3.5.2 首先,根据你的Windows版本(64位还是32位)从Python的官方网站下载Python 3.5.2对应的64位安装程序或32位安装程序(网速慢的同学 ...

  5. windows上安装apache python mod_python

    综述:   windows上安装apache python mod_python的例子.教程甚至图解都不少:但作为新手还是会出错,而且一时无法快速排解. 在此笔者将根据自己的实践经验,给出几个需要注意 ...

  6. Visual Studio 2012 Ultimate 上安装 Python 开发插件 PTVS

    1.我的环境 操作系统:32位 Win7 旗舰版 Service Pack 1 VS版本:Microsoft Visual Studio Ultimate 2012 版本 11.0.50727.1 R ...

  7. 在Win8.1(64位)系统上安装Scrapy(python 2.7.7)

    为了在win8.1上安装scrapy折腾了好久,最终安装成功,总结步骤如下: 下载安装Visual C++ 2008 redistributables 安装lxml-3.2.4.win-amd64-p ...

  8. (三)Python在windows上安装

    1.安装2.7--进入python官网(网址百度)下载python2.7 和python3.6(很小,2个程序后缀不一样?)2.安装到c:\python----next----advanced不动-- ...

  9. 原生的zfs在rhel6上的安装

    原生的zfs在rhel6上的安装 ZFS(Zettabyte File System)作为一个全新的文件系统,全面抛弃传统File System + Volume Manager + Storage( ...

随机推荐

  1. Horspool 字符串匹配算法

    Horspool 字符串匹配算法对Boyer-Moore算法的简化算法. Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有sub-linear亚线性时间复杂度. Hors ...

  2. 《Small Memory Software:Patterns For System With Limited Memory》读书笔记

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/13297447 虽然摩尔定律让我们的计算机硬件得以以指数速度升级,但反摩尔定律又不断消减这些 ...

  3. JS操作JSON常用方法

    一.JSON字符串的替换 工作经常遇到这样的字符串,如下: 需要经过替换后,才能从字符串转化成JSON对象.这里我们需要用JS实现replaceAll的功能, 将所有的 ' \\" ' 替换 ...

  4. 浅谈Jquery中的bind()、live()、delegate()、on()绑定事件方式

    一.on(),live(),bind() on() 为指定的元素,添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.使用 on() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建 ...

  5. android 多线程概述

    android多线程,一直是一个麻烦的事情,要掌握它的本质,我们需要搞清楚一个问题,linux多线程的本质. 我们这篇文章,来讨论以下的议程: 了解linux的历程,了解android的异步任务机制, ...

  6. Linux下删除相互依赖的包

    今天遇到一个问题,使用RPM 卸载包的时候两个包相互依赖 包A 和包B 卸载A的时候提示需要先卸载B ,反之亦然 经过一番百度 可以在命令后面加参数--nodeps 例如 rpm -e php-jso ...

  7. Android Studio安装&&安装bug

    1.安装SDK:Android SDK安装 2.安装Android Studio 3.配置HTTP Proxy: 转自:Android Studio设置HTTP代理(可用) 因为大陆的内网的防火墙很厉 ...

  8. Cognos与Firefox的那些事

    最近怀着一颗好奇的心装了Win10系统,作为一个Coder,或多或少的这么久以来对于它的兼容性还是秉着一颗质疑的态度.但是一切事情都要敢于尝试,毕竟Win10的用户体验还是很好的.和预料的一样,问题马 ...

  9. C++数据结构面试题

    原文:http://1527zhaobin.iteye.com/blog/1537110 一.判断链表是否存在环型链表问题:   说明:判断一个链表是否存在环,例如下面这个链表就存在环,n1--> ...

  10. IDA Pro基本简介

    IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭 ...