【译】Debian Linux下如何设置与更改默认python版本
2016-10-27 22:07
721 查看
前言
本文翻译自linuxconfig.org一篇文章,原文地址 。
python2 与 python3在许多方面的差异较大,在使用2到3的过程系统难免会有多个版本的python,本文将对如何设置或改变默认的python 版本做一下说明。
使用
ls命令查看当前系统存在哪些python版本:
$ ls /usr/bin/python* /usr/bin/python /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.4 /usr/bin/python3.4m /usr/bin/python3m
使用下面命令查看当前系统的默认版本
$ python --version Python 2.7.8
方法一: 基于当前用户层次的修改
【不推荐,因为python 本身是在系统层次。】改变python版本一个简单的方式就算使用命令
alias,将下面语句添加到
~/.bashrc文件底部即可。
注意:此为原文内容,
.bash文件的修改仅针对bash下生效,比如我使用的是zsh,此方法就不行了,解决方法是将
~/.bashrc文件 改为
~/.zshrc,其他地方不变。
alias python='/usr/bin/python3.4'
然后通过下面命令使文件生效
$ source ~/.bashrc
现在查看默认python版本
$ python --version Python 3.4.2
【补充】:
alias命令的作用就是设置指令的别名,具体可自行搜索。
方法二:系统层次的修改
系统层次下更改python默认版本可使用update-alternatives命令,如下:
进入root用户,使用下面命令列举可用的python版本
# update-alternatives --list python update-alternatives: error: no alternatives for python
可能会出现此错误信息,原因是python版本没有使用
update-alternatives命令进行认证添加,所以我们需要更新 python版本到可用版本,包括
python2.7和
python3.4两个版本:
# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode # update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2 update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode
-- install操作表示新建一个符号链接
【linux下有两种链接方式,分别是 硬链接(Hard Link)和 符号链接(Symbolic Link),请自行搜索】。
所以以上命令的目的是 使用
update-alternatives创建了个python的符号链接,指向了,
/usr/bin/python2.7,命名为1;使用
update-alternatives创建了个python的符号链接,指向了,
/usr/bin/python3.4,命名为2。
现在查看默认python版本,是3.4.2。【举例中因为第一种方法已经把python版本设置为3.4了。】
$ python --version Python 3.4.2
接着,我们查看当前可用的python版本
# update-alternatives --list python /usr/bin/python2.7 /usr/bin/python3.4
现在我们设置默认的python版本。
# update-alternatives --config python
如下,需要选择默认python的id,就是在添加时使用的号码 1 和 2 :
现在查看默认python版本,已经变为2.7版本。
# python --version Python 2.7.8
备注
如果长时间不用其他版本的python,可以将添加到update-alternatives列表的python 版本移除,如下,移除
update-alternatives列表的python2.7:
# update-alternatives --remove python /usr/bin/python2.7 update-alternatives: removing manually selected alternative - switching python to auto mode update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode
以上。
【个人总结】
原文中第一种方法更改后用户登录或重启会仍然有效,原因是使用终端运行bash的时候会自动读取.bashrc文件使其生效。
本人使用的shell为
zsh,所以当然不能更改
.bashrc文件,之前写环境变量直接写在
.profile文件中,
.profile文件是在用户登录的时候加载,然后就想到直接写在该文件中。source后生效, 但是重启 或重新登录用户后python 版本依然没变!个人猜测原因如下:
文件加载的顺序
用户登录加载
~/.profile文件, python版本更改,此时已经达到改默认python的目的。
用户打开终端,启动了
zsh,系统读取
.zshrc文件,其中
.zshrc文件中各种环境变量依然指向原来的路径,所以python 又被指向原来路径。
所以,个人总结:
使用 python更改版本的命令直接写在
.zshrc文件 (测试可以的)
一些命令的改变写在对应shell版本中, 启动终端时生效。
牵扯到账号密码等环境变量写在
.profile文件中,用户登录时生效。
为了一些不必要的麻烦建议还是使用第二种直接在系统层次改python版本比较好,然而这又会导致python扩展的问题,所以最好就是基于大版本(2或者3)使用虚拟环境。。
相关文章推荐
- 如何将 Debian Linux 中的默认的 Python 版本切换为替代版本
- 如何将 Debian Linux 中的默认的 Python 版本切换为替代版本
- linux 一些基本操作(设置默认python版本)
- Linux查看python可用版本&更改默认python版本
- 在Linux(fedora16)中如何安装Python3.2,并设定其为默认的Python版本?
- 如何在centos下更改默认版本的python
- linux下设置python3.x为默认版本
- Linux使用笔记4-添加用户变量(设置自己的命令,修改默认python版本等)
- Linux下python默认版本设置
- Debian中如何切换默认Python版本
- Debian中如何切换默认Python版本
- Linux 有问必答:如何在debian及其衍生发行版中改变默认的 Java 版本
- Debian中如何切换默认Python版本
- 如何更改Linux(Ubuntu)语言和编码设置
- ubuntu下更改默认python版本的方法
- 如何更改Android的默认虚拟机地址(Android virtual driver路径设置)
- Linux系统中设置默认的Java版本
- 如何设置布线默认过孔Via(Cadence16.0及以上版本)
- [CentOS]安装python2.75 设置为默认版本
- debian更改grub中的启动顺序:默认linux改为windows