怎样切换python2和python3?下面以windows环境和Linux环境离别引见切换要领:
windows环境:
在windows环境下装置python2与python3,怎样切换两者运用
输入py -3,即进入python3
输入 py -2,即进入python2
Linux环境:
为何须要有两个版本的Python
Python2和Python3不兼容是每一个打仗过Python的开辟者都晓得的事,虽然说Python3是将来,然则依然有很多项目采纳Python2开辟。Linux的很多刊行版本(如Ubuntu)都邑自带Python2.7,然则当我们预备开辟一个Python3项目的时刻,我们该怎样办?
那就把Python3也下咯。嗯,Linux下确实是能够两个一同装的,然则问题是你怎样切换两个版本的Python。
1 修正别号
起首先来看一下我们的默许Python版本
$ python --versionPython 2.7.6
然后我们修正一下别号
$ alias python='/usr/bin/python3'$ python --versionPython 3.4.3 # 版本已转变
/usr/bin/python3 这个途径是怎样找到的呢?
一般来说,软件的二进制文件都能够在 /usr/bin 或 /usr/local/bin (这个优先级高一点)找到。固然假如你是Debian系的Linux,能够这么找(条件是你已装置了Python3):
$ dpkg -L python3
上面的别号修正只是暂时性的,重开一个窗口后设置就不见了。假如要使每一个窗口都运用这个别号,能够编辑 ~/.bashrc (假如你是别的shell的话,就不是这个文件,如zsh是 ~/.zshrc ),把alias设置写入文件。
修正别号长处是充足简朴,然则切换不天真。
相干引荐:《Python视频教程》
2 链接文件
在 /usr/bin 中竖立一个链接文件指向Python3。
$ ln -s python /usr/bin/python3$ python --versionPython 3.4.3
跟修正别号一样,也是修正不够天真。
3 采纳update-alternatives 切换版本
update-alternatives是Debian供应的一个东西(非Debian系的就不必看了),道理类似于上面一个方法,也是经由历程链接的体式格局,然则其切换的历程异常轻易。
起首看一下update-alternatives的协助信息:
$ update-alternatives --help 用法:update-alternatives [<选项> ...] <敕令> 敕令: --install <链接> <称号> <途径> <优先级> [--slave <链接> <称号> <途径>] ... 在体系中到场一组候选项。 --remove <称号> <途径> 从 <称号> 替代组中去除 <途径> 项。 --remove-all <称号> 从替代体系中删除 <称号> 替代组。 --auto <称号> 将 <称号> 的主链接切换到自动形式。 --display <称号> 显现关于 <称号> 替代组的信息。 --query <称号> 机械可读版的 --display <称号>. --list <称号> 列出 <称号> 替代组中一切的可用候选项。 --get-selections 列出重要候选项称号以及它们的状况。 --set-selections 从规范输入中读入候选项的状况。 --config <称号> 列出 <称号> 替代组中的可选项,并就运用个中 哪个,咨询用户的看法。 --set <称号> <途径> 将 <途径> 设置为 <称号> 的候选项。 --all 对一切可选项逐一挪用 --config 敕令。 <链接> 是指向 /etc/alternatives/<称号> 的标记链接。 (如 /usr/bin/pager) <称号> 是该链接替代组的主控名。 (如 pager) <途径> 是候选项目的文件的位置。 (如 /usr/bin/less) <优先级> 是一个整数,在自动形式下,这个数字越高的选项,其优先级也就越高。 选项: --altdir <目次> 转变候选项目次。 --admindir <目次> 设置 statoverride 文件的目次。 --log <文件> 转变日记文件。 --force 就算没有经由历程自检,也强制执行操纵。 --skip-auto 在自动形式中跳过设置准确候选项的提醒 (只与 --config 有关) --verbose 启用细致输出。 --quiet 平静形式,输出尽量少的信息。不显现输出信息。 --help 显现本协助信息。 --version 显现版本信息。
--install <链接> <称号> <途径> <优先级> :竖立一组候选项
--config <称号> :设置 <称号>组中的可选项,并挑选运用个中哪个
--remove <称号> <途径> :从 <称号> 中去掉 <途径>选项
起首我们先看一下有无关于Python的可选项:
$ update-alternatives --display pythonupdate-alternatives: 毛病: 无 python 的候选项
那起首先竖立python的组,并增加Python2和Python3的可选项
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 # 增加Python2可选项,优先级为2 $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #增加Python3可选项,优先级为1
注重,这里的 /usr/bin/python 链接文件,两个可选项必需是一样的,如许这个链接文件才能够挑选两个差别的可选项去链接。
这时候假如我们检察 /usr/bin/python 这个文件时,会发明它已链接到了 /etc/alternatives/python 。
lrwxrwxrwx 1 root root 24 6月 19 18:39 python -> /etc/alternatives/python
然后我们再看一下版本
$ python --version Python 2.7.6
为何照样Python2,看一下设置
$ sudo update-alternatives --config python 有 2 个候选项可用于替代 python (供应 /usr/bin/python)。 挑选 途径 优先级 状况 ------------------------------------------------------------ * 0 /usr/bin/python2.7 2 自动形式 1 /usr/bin/python2.7 2 手动形式 2 /usr/bin/python3.4 1 手动形式 要保持当前值[*]请按回车键,或许键入挑选的编号:
本来是因为默许选中了自动形式,而Python2的优先级高于Python3,这时候刻只需键入2,就能够运用Python3了。
假如你想要删除某个可选项的话:
$ sudo update-alternatives --remove python /usr/bin/python2.7
update-alternatives只适用于Debian系Liunx。
4 virtualenvwrapper 切换版本
virtualenvwrapper是治理Python虚拟环境的东西,能够很轻易的为差别的项目竖立自力的环境,每一个项目都能够装置本身的依靠,同时也支撑在差别的虚拟环境中存在差别版本的Python。
起首装置virtualenvwrapper,能够挑选apt装置或许pip装置
apt装置
$ sudo apt-get install virtualenvwrapper
pip装置
$ sudo pip install virtualenvwrapper
当你须要运用Python2开辟项目时,竖立一个Python2的虚拟环境:
$ mkvirtualenv -p /usr/bin/python2 env27
当你须要Python3开辟时:
$ mkvirtualenv -p /usr/bin/python3.4 env34
然后能够随时切换差别的虚拟环境:
$ workon env27 # 进入Python2环境$ workon env34 # 进入Python3环境
更爽的是,你能够在进入虚拟环境的同时切换到项目目次,只须要编辑 $VIRTUAL_ENV/bin/postactivate 这个文件即可:
$ vim $VIRTUAL_ENV/bin/postactivate #条件是已进入对应的虚拟环境
在文件中增加切换目次的敕令:
cd /path/to/your/project
5 总结
前面两种要领不引荐运用。
运用 update-alternatives 切换版本只适用于Debian系的Linux。
引荐运用 virtualenvwrapper 来治理虚拟环境和版本。
以上就是怎样切换python2和python3的细致内容,更多请关注ki4网别的相干文章!