博客中的文章均为 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. 【bzoj3678】wangxz与OJ

    Portal -- > bzoj 3678 Solution 这题==真实智力康复qwq 然而众多神犇都说是10min写完的题我..可能写了近1h吧==深深感受到自己的弱小qwq (丢上来是因为 ...

  2. 【learning】洲阁筛

    问题描述 快速求素数处点值比较好求的积性函数前缀和 大致过程 Step1.求出一定范围内的素数处点值之和(\(g\)) Step2.利用上面的\(g\)求出一个\(f\)然后用\(f\)求出前缀和 具 ...

  3. BMP格式图像读取与存储

    全局变量: 1 #include "stdafx.h" #include <windows.h> /*BMP位图数据是4字节对齐*/ #define WIDTHBYTE ...

  4. 【OpenCV】SIFT原理与源码分析:关键点搜索与定位

    <SIFT原理与源码分析>系列文章索引:http://www.cnblogs.com/tianyalu/p/5467813.html 由前一步<DoG尺度空间构造>,我们得到了 ...

  5. shell函数使用

    函数定义格式: 和js有点类似,不过在 shell 中 function 关键字是可选的. 如: sum { // shell 语句 } function sum() { // shell 语句 } ...

  6. python使用pwd和grp操作unix用户及用户组

    1.pwd模块 pwd模块提供了一个unix密码数据库即/etc/passwd的操作接口,这个数据库包含本地机器用户帐户信息 常用操作如下: pwd.getpwuid(uid):返回对应uid的示例信 ...

  7. 阳/阴性预测值Positive/negative Predictive Value(推荐AA)

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...

  8. [线索二叉树] [LeetCode] 不需要栈或者别的辅助空间,完成二叉树的中序遍历。题:Recover Binary Search Tree,Binary Tree Inorder Traversal

    既上篇关于二叉搜索树的文章后,这篇文章介绍一种针对二叉树的新的中序遍历方式,它的特点是不需要递归或者使用栈,而是纯粹使用循环的方式,完成中序遍历. 线索二叉树介绍 首先我们引入“线索二叉树”的概念: ...

  9. HTML+css零碎小知识

    1.设置了float浮动的元素和绝对定位position:absolute的元素会脱离正常的文档流.但是设置absolute的元素不会占据空间,相当于隐形了.   2.相对定位position:rel ...

  10. Anaconda更换版本方式

    Conda的环境管理 Conda的环境管理功能允许我们同时安装若干不同版本的Python,并能自由切换.假设我们需要安装Python 3.6,此时,我们需要做的操作如下: # 创建一个名为python ...