为什么需要有两个版本的Python

Python2和Python3不兼容是每个接触过Python的开发者都知道的事,虽说Python3是未来,但是仍然有很多项目采用Python2开发。Linux的许多发行版本(如Ubuntu)都会自带Python2.7,但是当我们准备开发一个Python3项目的时候,我们该怎么办?

那就把Python3也下咯。嗯,Linux下确实是可以两个一起装的,但是问题是你怎么切换两个版本的Python。

0x01 修改别名

首先先来看一下我们的默认Python版本

$ python --version
Python 2.7.6
  • 1
  • 2

然后我们修改一下别名

$ alias python='/usr/bin/python3'
$ python --version
  • 1
  • 2

Python 3.4.3 # 版本已经改变 
/usr/bin/python3 这个路径是怎么找到的呢?

一般来说,软件的二进制文件都可以在 /usr/bin 或 /usr/local/bin (这个优先级高一点)找到。当然如果你是Debian系的Linux,可以这么找(前提是你已经安装了Python3):

$ dpkg -L python3
  • 1

上面的别名修改只是暂时性的,重开一个窗口后配置就不见了。如果要使每个窗口都使用这个别名,可以编辑 ~/.bashrc (如果你是别的shell的话,就不是这个文件,如zsh是 ~/.zshrc ),把alias配置写入文件。

修改别名优点是足够简单,但是切换不灵活。

0x02 链接文件

在 /usr/bin 中建立一个链接文件指向Python3。

$ ln -s python /usr/bin/python3
$ python --version
Python 3.4.3
  • 1
  • 2
  • 3

跟修改别名一样,也是修改不够灵活。

0x03 virtualenvwrapper 切换版本

virtualenvwrapper是管理Python虚拟环境的工具,可以很方便的为不同的项目建立独立的环境,每个项目都可以安装自己的依赖,同时也支持在不同的虚拟环境中存在不同版本的Python。

首先安装virtualenvwrapper,可以选择apt安装或者pip安装

apt安装

$ sudo apt-get install virtualenvwrapper
  • 1

pip安装

$ sudo pip install virtualenvwrapper
  • 1

当你需要使用Python2开发项目时,建立一个Python2的虚拟环境:

$ mkvirtualenv -p /usr/bin/python2 env27
  • 1

当你需要Python3开发时:

$ mkvirtualenv -p /usr/bin/python3.4 env34
  • 1

然后可以随时切换不同的虚拟环境:

$ workon env27  # 进入Python2环境
$ workon env34 # 进入Python3环境
 
  • 1
  • 2

更爽的是,你可以在进入虚拟环境的同时切换到项目目录,只需要编辑 $VIRTUAL_ENV/bin/postactivate 这个文件即可:

vimvimVIRTUAL_ENV/bin/postactivate #前提是已经进入对应的虚拟环境 
在文件中添加切换目录的命令:

cd /path/to/your/project

Linux下切换python2和python3的更多相关文章

  1. linux下切换python2和python3(转)

    0x00 为什么需要有两个版本的Python Python2和Python3不兼容是每个接触过Python的开发者都知道的事,虽说Python3是未来,但是仍然有很多项目采用Python2开发.Lin ...

  2. linux(Ubuntu16)下切换python2和python3(转)

    采用update-alternatives 切换版本 1.打开终端:Ctrl+Alt+T 2.查看update-alternatives的帮助信息:update-alternatives --help ...

  3. windows 环境下切换 python2 与 pythone3 以及常用命令

    windows 环境下切换运行时的 python2 与 pythone3 当需要 python2 时执行:py -2 当需要 python3 时执行:py -3 windows下通过cmd切换pyth ...

  4. Linux下安装python-2.7 先zlib

    2018-04-25 发布 Linux下安装python-2.7  python 1.1k 次阅读  ·  读完需要 25 分钟 1 安装依赖的库 yum -y install python-deve ...

  5. 【转】Windows下安装python2和python3双版本

    [转]Windows下安装python2和python3双版本 现在大家常用的桌面操作系统有:Windows.Mac OS.ubuntu,其中Mac OS 和 ubuntu上都会自带python.这里 ...

  6. Linux下切换使用两个版本的JDK

    Linux下切换使用两个版本的JDK 我这里原来已经配置好过一个1.7版本的jdk. 输出命令: java -version [root@hu-hadoop1 sbin]# java -version ...

  7. Linux下安装Python2.7

    Linux下安装Python2.7 CentOS6.8 中默认安装了Python2.6,但是很多应用需要使用Python2.7,于是要学会如何在Linux下安装Python2.7,这里记录一下,免得以 ...

  8. 《转》windows下通过cmd切换python2和python3版本

    当电脑中同时安装了python2和python3时,往往会由切换版本的需求.那么如何通过cmd命令行做到呢? 方法:修改python.exe的文件名 举个栗子: 我的电脑中同时安装了py2.7.10和 ...

  9. MacOS下,Python2和Python3完美兼容使用(转)

    问题阐述: MacOS默认Python版本是2.7.10,随着Python3的进一步占有市场,Python2.7也将在2020年结束维护,所以在同一台电脑上安装多个Python版本势在必行. 一.py ...

随机推荐

  1. 泛型种树(generic) 代码

    再这个案例中我们,为什么要使用泛型约束 使用约束的原因 约束指定类型参数的功能和预期. 声明这些约束意味着你可以使用约束类型的操作和方法调用. 如果泛型类或 方法对泛型成员使用除简单赋值之外的任何操作 ...

  2. jvm添加jmx远程监控

    调JVM监控的时候需要远程连接机器,所以服务器需要开放JMX协议,配置如下. 现在我的项目是jboot-jfinal项目,用的是undertow容器,在启动脚本里面加入 JAVA_OPTS=" ...

  3. Python:2维(平面/数组/矩阵)缺省值插值

    学习自:python插值填补缺省值_插值缺失值2d python_weixin_39592315的博客-CSDN博客 问题 假设我们有一个2D数组(或者矩阵),其中有一些缺省值NaN,就像下边这样: ...

  4. C++ 字符串 string

    1.使用前应先包含头文件string.h,有的是cstring #include<string> 这样才能正确的cin和cout字符串. cin时,是按照空格.TAB和换行进行分割的 例如 ...

  5. ConvertHelper

    DataTable 转Json using Newtonsoft.Json; public static string DataTableToJson(DataTable dt) { varJsonS ...

  6. mysql通过mysqldunp命令重做从库详细操作步骤

    mysql通过mysqldunp命令重做从库详细操作步骤 背景 生产环境上的主从复制集群,因为一些异常或人为原因,在从库做了一些操作,导致主从同步失败.一般修复起来比较麻烦,通过重做mysql从库的方 ...

  7. [转载]MATLAB中神经网络的函数

    1.设计函数 solvein    设计线性网络:                solverb   设计径向基网络:                      solverbe    设计精确的径向 ...

  8. php压缩zip文件类

    使用文件压缩类, 注意传的路径是相对路径.如果传绝对路径就把addFile里面的第二个参数去掉/ $zip = new ZipFolder(); $zipFile = './autoloadClass ...

  9. php 23种设计模式 - 解释器模式

    给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子.角色:环境角色(PlayContent):定义解释规则的全局信息.抽象解释器(Empress):定义了部 ...

  10. 2022 年了,还不了解 PWA ? 教你 VuePress 博客如何快速兼容 PWA

    前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇我们 ...