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

  • 相关阅读:
    SpringMVC的入门示例
    [PTA] 数据结构与算法题目集 6-1 单链表逆转
    [PTA] L3-015 球队“食物链”
    [PTA] 1001. 害死人不偿命的(3n+1)猜想 (Basic)
    [PTA] 1002. 写出这个数 (Basic)
    [opengl] 画一个可移动的自行车 二维几何变换(平移、旋转、缩放)
    css inline-block 水平居中
    css 图片裁剪显示
    [leetcode] 19. Remove Nth Node From End of List (Medium)
    [leetcode] 20. Valid Parentheses (easy)
  • 原文地址:https://www.cnblogs.com/HHHAI/p/11124531.html
Copyright © 2011-2022 走看看