zoukankan      html  css  js  c++  java
  • Linux下切换python2和python3

    为什么需要有两个版本的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

  • 相关阅读:
    Delphi中的进制转换
    delphi inttohex 整型到十六进制
    delphi将程序最小化至右下角
    sql server 本地复制订阅 实现数据库服务器 读写分离
    我在DBGridEh增加一栏复选框及对应操作的解决方案
    Application.CreateForm()和TForm.Create()创建的窗体有什么区别么?二者在使用上各有什么技巧?(50分)
    学用 TStringGrid [6]
    SQL Server中一些有用的日期sql语句
    MVC中的@Html.DisplayFor等方法如何控制日期的显示格式(转)
    ASP.NET MVC自定义AuthorizeAttribute篇知识点讲解—登录限制
  • 原文地址:https://www.cnblogs.com/HHHAI/p/11124531.html
Copyright © 2011-2022 走看看