专栏首页python3Linux下切换Python版本

Linux下切换Python版本

这两天遇到一个问题需要在 python3 的环境下进行测试,由于Linux默认已经安装了Python2.7,并且作者一直也在使用 ,所以需要重新安装并临时切换到 python3。

在网上查到很多资料,但是每一篇都讲的不全,需要结合起来看才行。

所以作者简单整理了下,希望能通过这篇文章,希望即能让大家达成效果,又能真正理解其中的原理。

简单来说,要安装并切换到 python3,需要依次进行以下3个操作:

下载解压 编译安装 切换(修改默认链接) 即使使用虚环境,也是需要执行以上3步,因为创建虚环境的时候也会默认安装 python2 的版本。

下载解压 1> 下载Python源码 地址:https://www.python.org/downloads/

我们这里下载了 3.6.3 版本 .tgz 后缀的文件。

2> 解压 1)、# tar -xvzf Python-3.6.3.tgz 2)、# cd Python-3.6.3

编译安装 1)、# ./configure --prefix=/usr/local/python3.6.3 2)、# make 3)、# make install

安装完后,我们可以在 /usr/local/python3.6.3 目录下看到:

如果执行“./configure”时,不指定“–prefix=/usr/local/python3.6.3”,则默认会安装在 /usr/local/ 目录下。 也就是说,图上的4个目录文件(bin、include、lib、share)会安装在 /usr/local/ 目录下,与该目录下原有的目录文件合并。

进入 bin 目录,我们便可以看到 python3 和 pip3 命令:

虽然我们可以在该路径下(/usr/local/python3.6.3/bin)使用 python3 和 pip3 命令,或是添加 path 环境变量后在任意路径使用,但使用时始终要加 “3”,而不是我们通常用的 python 和 pip。

切换(修改默认链接) 我们通常使用的 python 和 pip 命令,都是放在 /usr/bin/ 目录下

所以,我们需要让这里的 python 和 pip 命令 软链接到我们的 python3 和 pip3 命令。

有以下两种方式(2选1即可):

1、手动 2、借助命令 手动: 1)、# cd /usr/bin

2)、# mv python python.back //备份原先的python 3)、# ln -s /usr/local/python3.6.3/bin/python3 /usr/bin/python

4)、# mv python python.back //备份原先的pip 5)、# ln -s /usr/local/python3.6.3/bin/pip3 /usr/bin/pip

这是,我们再使用 python –version 和 pip –version 就可以看到版本已经切换好了

借助命令 这里我们借助的命令就是:update-alternatives

update-alternatives是dpkg的实用工具,用来维护系统命令的符号链接,以决定系统默认使用什么命令。

python 添加 python 的符号链接

1)、# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100 //添加原先python2.7的

2)、# update-alternatives --install /usr/bin/python python /usr/local/python3.6.3/bin/python3 2 //添加新安装python3.6.3的

修改 python 的符号链接:

3)、# update-alternatives --config python

pip 添加 pip 的符号链接

1)、# update-alternatives --install /usr/bin/pip pip /usr/bin/pip2.7 100 //添加原先pip2的

2)、# update-alternatives --install /usr/bin/pip pip /usr/local/python3.6.3/bin/pip3 2 //添加新安装pip3的 修改 pip 的符号链接:

3)、# update-alternatives --config pip

其他注意事项

切换到 python3 后,可能会造成一些命令不能使用,如:yum。 这是因为这些命令不兼容 python3,只需要将其修改为使用原先的 python2 即可。

如下图,把文件头部的 #!/usr/bin/python 改成 #!/usr/bin/python2.7 。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux下mysql主从复制

    1、在本地搭建两个linux虚拟机,其主服务器ip为192.168.0.1,从服务器ip为192.168.0.2。

    93年的老男孩
  • php7.0添加memcached扩展

    根目录使用./configure --prefix=/var/local/lnmp/memcached安装

    93年的老男孩
  • php7.0添加curl,mbstring,pdo,openssl扩展

    进入php安装源码,若安装源码在/var/local/lnmp1/php-7.0,安装的途径在/var/local/lnmp/php-7.0

    93年的老男孩
  • 向mysql配置文件中添加日志配置

    socket = usr/local/lnmp/mysql-5.7.21/mysql.sock

    93年的老男孩
  • vm虚拟机内,centos系统如何安装并开启apache

    iptables -I INPUT -p tcp --dport 80 -j ACCEPT (iptables -I INPUT -p tcp --dport ...

    93年的老男孩
  • linux下查看端口是否开启常用命令

    二、关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP

    93年的老男孩
  • PHP7.0加载gd库

    Fatal error: Call to undefined function imagecreate()解决办法:

    93年的老男孩
  • Centos下基于vsftpd安装ftp方法

    useradd -d /var/local/www/vsftp -g ftp -s /sbin/nologin vsftp

    93年的老男孩
  • docker的常用命令以使用

    docker引擎的基础是linux容器技术。与虚拟机的相似,但又不同。docker是一种轻量级的虚拟化方式,docker容器的启动和停止可以在秒级实现,速度比...

    93年的老男孩
  • nginx根据日期记录日志

    if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {

    93年的老男孩

扫码关注云+社区

领取腾讯云代金券