博客中的文章均为 meelo 原创,请务必以链接形式注明 本文地址

虽然Python2大势已去,众多项目都已经支持Python3,但总有一些教程和项目只支持Python2。通常情况是计算机里既装着Python2,也装了Python3。

多Python版本共存的解决方案已经有不少,简单罗列几种:

这些方法都有各自的不足,直接修改程序文件名仍然不能解决pip包管理器的问题,对jupyter之类的脚本也不起作用;virtualenv和conda切换的流程稍显复杂,需要开启和关闭虚拟环境。

这里提出一种新的解决方案,适用于Windows和Linux所有系统,适用于原生发行版的不同版本Python2和Python3,也适用于其它发行版Anaconda2和Anaconda3。教程中以windows系统为例。

系统选择哪一个Python是根据PATH系统路径决定的。

执行一个程序时,系统从系统路径中搜索相同文件名的可执行文件。存在Python版本意味着有多个可执行程序的名字都是python,这时系统选择哪一个版本根据路径在系统路径的顺序决定。

C:\Python27;C:\Python27\Scripts;C:\Users\meelo\Anaconda3;C:\Users\meelo\Anaconda3\Scripts

如果系统路径如上所示。Python27在前,则默认使用的版本是Python2.7。

我的解决方案正是利用了这一点。下面是干货时间。

步骤1:删除系统路径中其它Python版本的路径,只留下默认使用的版本

注意Python在系统路径中包含两个路径一个是根目录C:\Python27,一个是Scripts目录C:\Python27\Scripts

设置系统路径可以依次执行  Win+x > 系统 > 高级系统设置 > 环境变量 > 编辑PATH

步骤2:在C:\Windows目录下建立脚本

脚本名称:py2.bat,脚本名称就是每次切换版本时所需要执行的命令。

脚本内容

@echo off
set path=C:\Users\meelo\Anaconda2;C:\Users\meelo\Anaconda2\Scripts;%path%

脚本所其的作用就是临时将需要使用的Python版本路径加入到系统路径中。注意是临时改变系统路径,因此其它的命令行(shell)并不受影响。

脚本中颜色为绿色的部分就是临时需要使用Python版本的路径。@echo off意思是在执行脚本时,不打印输出命令的内容。

步骤3:临时切换Python版本

方法1:

py2
python -V
pip install seaborn

方法2:

py2 & python -V
py2 & pip install seaborn
py2 & jupyter

临时切换Python就只需要在原有命令前加上 py2 & 或者单独在之前执行命令 py2。如果选择在命令前加上py &,也只有第1条命令需要加上,后面的命令都会自动使用切换后的Python版本了。

最后,直接win+R在运行里输入 py2 & python,以上方法仍然是生效的。

在研究了很多方法之后,发现我的方法还是最简单的。有什么问题欢迎留言。

Python/Anaconda多版本共存的解决方案的更多相关文章

  1. Python linux多版本共存以及虚拟环境管理(转摘)

    Python linux多版本共存以及虚拟环境管理 2017年08月01日 18:42:25 sliderSun 阅读数:197更多 个人分类: python   版权声明:本文为博主原创文章,未经博 ...

  2. Windows 下让 Python 多个版本共存(支持 pip)

    转载自 http://blog.kgzx.net/index.php/archives/40/ 因为类库兼容性的关系,写实际项目时都是用 Python 2,但自己试验性的写点小东西还是喜欢用 Pyth ...

  3. python基础-python解释器多版本共存-变量-常量

    一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...

  4. Python 起步 多版本共存配置

    上次我选择的是py2.x,如果我要再装一个py3.x呢 我们去设置环境变量,然后去命令行输入python,这里我故意把环境变量放在第一行,貌似换成3.7了 我们把2.7的放在3.7的前面呢?又换回去了 ...

  5. Python多版本共存之pyenv

    经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...

  6. Linux系统之路——python多版本共存问题(ps:自行切换python版本,pip安装遇到的一些问题)

    经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...

  7. Python多版本共存管理工具之pyenv

    目录 Table of Contents 1. 安装pyenv 2. 安装Python 3.0 使用python 参考 Table of Contents 经常遇到这样的情况: 系统自带的Python ...

  8. Python 多版本共存之pyenv

    经常遇到这样的情况: 系统自带的 Python 是 2.6,自己需要 Python 2.7 中的某些特性: 系统自带的 Python 是 2.x,自己需要 Python 3.x: 此时需要在系统中安装 ...

  9. Ancoda 下的python多版本共存

    Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virt ...

随机推荐

  1. ASCLL表

    ASCII码表完整版 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 SOH 33 ! 65 ...

  2. DES算法和MAC算法总结

    需要用到的工具类,代码如下: import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java. ...

  3. Update submitted Perforce changelist description by P4.net api

    Firstly download the p4.net sdk from Perforce official site's download page. It's a .zip file, extra ...

  4. laravel 5.1 单元测试 Cannot modify header information 错误

    运行phpunit的时候加上参数 --stderr ./vendor/bin/phpunit --stderr

  5. Jenkins基于角色的项目权限管理

    参考博客:http://www.cnblogs.com/davidwang456/p/3701972.html 一.简介 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三 ...

  6. JSOI2008 小店购物

    https://www.luogu.org/problem/show?pid=2792 题目背景 JSOI集训队的队员发现,在他们经常活动的集训地,有一个小店因为其丰富的经营优惠方案深受附近居民的青睐 ...

  7. [Luogu 2486] SDOI2011 染色

    [Luogu 2486] SDOI2011 染色 树剖水题,线段树维护. 详细题解不写了. 我只想说我写的线段树又变漂亮了qwq #include <algorithm> #include ...

  8. 【POJ】3177 Redundant Paths

    [算法]边双连通分量 [题意&题解]http://blog.csdn.net/geniusluzh/article/details/6619575 (注意第一份代码是错误的) 一些细节: 1. ...

  9. 面试整理(3)js事件委托

    事件委托主要用于一个父容器下面有很多功能相仿的子容器,这时候就需要将子容器的事件监听交给父容器来做.父容器之所以能够帮子容器监听其原理是事件冒泡,对于子容器的点击在冒泡时会被父容器捕获到,然后用e.t ...

  10. HttpUtility.UrlEncode与Server.UrlEncode()转码区别

    在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试: string file="文件上(传)篇.doc";string Server_UrlEncode=Server ...