Python 2.x 3.x 多版本共存
了解python的人都知道python有2.x版本和3.x版本,而python3.x版本不向下兼容,但是根据具体的需要,有时候要2.x和3.x共存,python共存本身没有问题,只是需要设置一些环境变量和修改一些东西来让它更容易使用。
一、windows环境
首先当然是安装你需要的两个不同版本的python,我安装的是2.7和3.4的,两个版本安装顺序无所谓,但是后面安装的会变成默认的(因为我是后安装的python 3.4,它就变成了默认的python)。
然后去python27 文件夹下面把python.exe改名python2.exe,然后就可以在命令行下通过python或者py来调用3.x,python2来调用2.x。
另外pip的话直接使用 pip2 或者 pip3 就可以了。
二、Linux(Centos为例)环境
安装pyenv
1 | git clone git://github.com/yyuu/pyenv.git ~/.pyenv |
安装Python
查看可安装的版本
pyenv install --list
该命令会列出可以用pyenv安装的Python版本,仅列举几个:
1 | 2.7.8 # Python 2最新版本 |
其中形如 x.x.x
这样的只有版本号的为Python官方版本,其他的形如 xxxxx-x.x.x
这种既有名称又有版本后的属于“衍生版”或发行版。
安装Python的依赖包
在安装Python时需要首先安装其依赖的其他软件包,已知的一些需要预先安装的库如下。
在CentOS/RHEL/Fedora下:
1 | sudo yum install readline readline-devel readline-static |
安装指定版本
使用如下命令即可安装python 3.4.1:
pyenv install 3.4.1 -v
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。
对于科研环境,更推荐安装专为科学计算准备的Anaconda发行版,pyenv install anaconda-2.1.0
安装2.x版本,pyenv install anaconda3-2.1.0
安装3.x版本;
Anacoda很大,用pyenv下载会比较慢,可以自己到Anaconda官方网站下载,并将下载得到的文件放在 ~/.pyenv/cache
目录下,则pyenv不会重复下载。
更新数据库
安装完成之后需要对数据库进行更新:
pyenv rehash
查看当前已安装的python版本
1 | $ pyenv versions |
其中的星号表示当前正在使用的是系统自带的python。
设置全局的python版本
1 | $ pyenv global 3.4.1 |
当前全局的python版本已经变成了3.4.1。也可以使用 pyenv local
或 pyenv shell
临时改变python版本。
确认python版本
1 | $ python |
使用python
- 输入
python
即可使用新版本的python; - 系统自带的脚本会以
/usr/bin/python
的方式直接调用老版本的python,因而不会对系统脚本产生影响; - 使用
pip
安装第三方模块时会安装到~/.pyenv/versions/3.4.1
下,不会和系统模块发生冲突。 - 使用
pip
安装模块后,可能需要执行pyenv rehash
更新数据库;