在centos6中同时使用python2和python3
来源:互联网 发布:哥特萝莉安妮淘宝 编辑:程序博客网 时间:2024/05/20 16:35
零、说明
1.在这里没有指定python的次级版本及centos次级版本,基本上没有区别。
2.在centos6自带的是python2.6.6,当python解释器版本升级后很多系统应用将无法使用,比如yum。一个简单易行的方法是把新版本的python安装在/usr/local 目录下,这样一来新版本和老版本就可以共存了。
3.这个指南可以应用于我现在用的环境(CentOS 6.5 64 位),可能也适用于CentOS 5,文档持续更新。
4.以root用户执行以下所有命令,或者用sudo执行。
一、准备工作
为了能够编译Python您需要首先安装开发工具和一些额外的库。
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
几件需要注意的事
0)x和y是版本系数,在运行命令式将其替换成最新版本号。如3.x.y修改为3.4.1,3.x修改为3.4等
1)统一的字符编码
Python在字符编码问题上有一段久远而复杂的历史。没有特殊的原因我想还是让你的Python支持utf-32. 在Python3.3的时候,unicode已被重写,字符串将被自动采用最佳编码方式存储。在接下来python2在configure命令中加上
--enable-unicode=ucs4
在python3加上
--with-wide-unicode
2)共享库
我们应该把python编译为一个共享库,所有linux版本都是这样编译的。否则有一些第三方工具比如mod_wsgi 和 Blender 将无法工作。为了将Python编译为共享库这儿为您提供两个选择:
在configure命令添加如下命令就能把其编译到可执行的路径:
LDFLAGS="-Wl,-rpath /usr/local/lib"
用编辑器打开文件/etc/ld.so.conf ,添加如下路径/usr/local/lib. 为了更新您需要运行
/sbin/ldconfig
3)使用“make altinstall” 防止出现一些问题
在你安装Python的自定义版本的时候使用make altinstall非常重要。如果您使用普通的make install 在文件系统中将会存在两个Python版本,而其名称却都是python,这将导致非常难以诊断的问题。
二、下载、编译和安装Python
使用如下命令,如果您在之前就已修改过ld.so.conf文件的话那么就可以删除LDFLAGS参数。
# Python 2.x.y:wget http://python.org/ftp/python/2.x.y/Python-2.x.y.tar.xztar xf Python-2.7.6.tar.xzcd Python-2.x.y./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"make && make altinstall # Python 3.x.y:wget http://python.org/ftp/python/3.x.y/Python-3.x.y.tar.xztar xf Python-3.x.y.tar.xzcd Python-3.x.y./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"make && make altinstall
运行完以上命令后Python解释器就可以可以通过如下路径调用了
/usr/local/bin/python2.x/usr/local/bin/python3.x
原来系统自带的python2.6仍然可以使用,三个命令中的任何一个都可以
/usr/bin/python/usr/bin/python2/usr/bin/python2.6
三、下载和安装setuptools+pip
setuptools已经取代distribute成为官方包管理器。 系统上的每一个Python解释器都需要自己的setuptools。我也建议你安装pip,因为它是建立在setuptools之上的,而且它能为您管理包提供额外的功能。
运行如下命令安装最新版本的setuptools和pip
# First get the setup script for Setuptools:wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py # Then install it for Python 2.x and/or Python 3.x:python2.x ez_setup.pypython3.x ez_setup.py # Now install pip using the newly installed setuptools:easy_install-2.x pipeasy_install-3.x pip # With pip installed you can now do things like this:pip2.x install [packagename]pip2.x install --upgrade [packagename]pip2.x uninstall [packagename]
以后的安装包路径将会是
/usr/local/lib/pythonX.Y/site-packages/
然后呢?
如果您用Python2.7的话我强烈建议您安装virtualenv。它能够为您创建独立的Python环境。如果您使用Python3.x您就不需要安装了,因为3.x版本已经内置了virtualenv。
每一个独立的Python环境(也可以叫做沙盘)拥有其自己的Python版本和package版本。当您在不同项目中需要运行不同版本是时非常有用。
第四、试用一下
# Install virtualenv for Python 2.7 and create a sandbox called my27project:pip2.7 install virtualenvvirtualenv-2.7 my27project # Use the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:pyvenv-3.3 my33project # Check the system Python interpreter version:python --version# This will show Python 2.6.6 # Activate the my27project sandbox and check the version of the default Python interpreter in it:source my27project/bin/activatepython --version# This will show Python 2.7.6deactivate # Activate the my33project sandbox and check the version of the default Python interpreter in it:source my33project/bin/activatepython --version# This will show Python 3.3.5deactivate
使用virtualenv创建sandbox时会在sandbox中自动安装setuptools和pip。如果你使用pyvenv那么你必须自己安装。您可以在激活了sandbox后再次使用ez_setup.py文件。
第五、说明
原文
- 在centos6中同时使用python2和python3
- 同时使用Python2和Python3
- python2和python3同时在windows下pip的使用
- 如何在Windows下实现Python2和python3共存同时使用
- 在CentOS7下同时安装、使用Python2.x和Python3.x
- 如何在CentOS6上安装Python2.7和Python3.3
- 在同一台电脑上同时安装Python2和Python3
- 同时在安装Python2和Python3下安装pygame
- 如何在windows上同时安装python2和python3
- 在Windows下同时安装Python2.x和Python3.x
- 在同一台电脑上同时安装Python2和Python3
- 如何在win10上同时安装python2和python3
- 手把手在win10上同时安装python2和python3
- Debian8下python3和python2同时安装如何使用pip
- pycharm同时使用python2.7和python3.5设置方法
- 同时安装python2和python3的pip使用问题
- windows下python2和python3同时使用pip模块
- python2和python3同时安装如何使用pip
- 离线版MSDN下载地址
- hdu-2187悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
- Java中无法引用没有包、默认包、顶级类
- poj2299--B - Ultra-QuickSort(线段树,离散化)
- 设计模式概述【整理】
- 在centos6中同时使用python2和python3
- gedit下汇编不高亮显示的解决办法
- STL 之 stack
- Libevent源码分析-----配置event_base
- ZOJ2588 Burning Bridges 割边
- Number Sequence(杭电1005)
- hdu 1800 Flying to the Mars(贪心)
- hdoj 2091空心三角形
- Windows XP英文系统显示中文乱码该如何解决