Linux下切换python2和python3
阅读原文时间:2023年07月09日阅读:1

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

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

首先先来看一下我们的默认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配置写入文件。

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

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

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

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

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