zoukankan      html  css  js  c++  java
  • 在rhel6上安装Python 2.7和Python 3.3

    安装前,操作系统软件包准备
    编译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 48
    -rwxr-xr-x. 1 root root   101 Aug 17 09:05 2to3
    -rwxr-xr-x. 1 root root    99 Aug 17 09:05 idle
    -rwxr-xr-x. 1 root root    84 Aug 17 09:05 pydoc
    lrwxrwxrwx. 1 root root     7 Aug 17 09:22 python -> python2
    lrwxrwxrwx. 1 root root     9 Aug 17 09:22 python2 -> python2.7
    -rwxr-xr-x. 1 root root 11366 Aug 17 09:22 python2.7
    -rwxr-xr-x. 1 root root  1687 Aug 17 09:22 python2.7-config
    lrwxrwxrwx. 1 root root    16 Aug 17 09:22 python2-config -> python2.7-config
    lrwxrwxrwx. 1 root root    14 Aug 17 09:22 python-config -> python2-config
    -rwxr-xr-x. 1 root root 18547 Aug 17 09:05 smtpd.py
    [root@rhce7 bin]#

    make altinstall的结果:

    [root@rhce7 bin]# ll
    total 48
    -rwxr-xr-x. 1 root root   101 Aug 17 09:05 2to3
    -rwxr-xr-x. 1 root root    99 Aug 17 09:05 idle
    -rwxr-xr-x. 1 root root    84 Aug 17 09:05 pydoc
    -rwxr-xr-x. 1 root root 11366 Aug 17 09:20 python2.7
    -rwxr-xr-x. 1 root root  1687 Aug 17 09:20 python2.7-config
    -rwxr-xr-x. 1 root root 18547 Aug 17 09:05 smtpd.py
    [root@rhce7 bin]# 

    下载、编译、安装

    # Python 2.7.10:
    wget http://python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
    tar xf Python-2.7.10.tar.xz
    cd Python-2.7.10
    ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
    make && make altinstall
     
    # Python 3.4.3:
    wget http://python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
    tar xf Python-3.4.3.tar.xz
    cd Python-3.4.3
    ./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.7 ez_setup.py
    python3.4 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.7 install [packagename]
    pip2.7 install --upgrade [packagename]
    pip2.7 uninstall [packagename]

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

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

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

  • 相关阅读:
    IOS系统设置页面跳转
    android常用自动化测试框架
    Gradle学习总结
    软件开发版本管理阶段描述
    Swift学习笔记(10):类和结构体
    Swift学习笔记(9):枚举
    Swift学习笔记(8):闭包
    Swift学习笔记(7):函数
    Swift学习笔记(6):控制流
    JSON序列化器/解析器
  • 原文地址:https://www.cnblogs.com/abclife/p/4735875.html
Copyright © 2011-2022 走看看