Python/Anaconda多版本共存的解决方案
博客中的文章均为 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多版本共存的解决方案的更多相关文章
- Python linux多版本共存以及虚拟环境管理(转摘)
Python linux多版本共存以及虚拟环境管理 2017年08月01日 18:42:25 sliderSun 阅读数:197更多 个人分类: python 版权声明:本文为博主原创文章,未经博 ...
- Windows 下让 Python 多个版本共存(支持 pip)
转载自 http://blog.kgzx.net/index.php/archives/40/ 因为类库兼容性的关系,写实际项目时都是用 Python 2,但自己试验性的写点小东西还是喜欢用 Pyth ...
- python基础-python解释器多版本共存-变量-常量
一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...
- Python 起步 多版本共存配置
上次我选择的是py2.x,如果我要再装一个py3.x呢 我们去设置环境变量,然后去命令行输入python,这里我故意把环境变量放在第一行,貌似换成3.7了 我们把2.7的放在3.7的前面呢?又换回去了 ...
- Python多版本共存之pyenv
经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...
- Linux系统之路——python多版本共存问题(ps:自行切换python版本,pip安装遇到的一些问题)
经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...
- Python多版本共存管理工具之pyenv
目录 Table of Contents 1. 安装pyenv 2. 安装Python 3.0 使用python 参考 Table of Contents 经常遇到这样的情况: 系统自带的Python ...
- Python 多版本共存之pyenv
经常遇到这样的情况: 系统自带的 Python 是 2.6,自己需要 Python 2.7 中的某些特性: 系统自带的 Python 是 2.x,自己需要 Python 3.x: 此时需要在系统中安装 ...
- Ancoda 下的python多版本共存
Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virt ...
随机推荐
- ASCLL表
ASCII码表完整版 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 SOH 33 ! 65 ...
- DES算法和MAC算法总结
需要用到的工具类,代码如下: import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java. ...
- 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 ...
- laravel 5.1 单元测试 Cannot modify header information 错误
运行phpunit的时候加上参数 --stderr ./vendor/bin/phpunit --stderr
- Jenkins基于角色的项目权限管理
参考博客:http://www.cnblogs.com/davidwang456/p/3701972.html 一.简介 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三 ...
- JSOI2008 小店购物
https://www.luogu.org/problem/show?pid=2792 题目背景 JSOI集训队的队员发现,在他们经常活动的集训地,有一个小店因为其丰富的经营优惠方案深受附近居民的青睐 ...
- [Luogu 2486] SDOI2011 染色
[Luogu 2486] SDOI2011 染色 树剖水题,线段树维护. 详细题解不写了. 我只想说我写的线段树又变漂亮了qwq #include <algorithm> #include ...
- 【POJ】3177 Redundant Paths
[算法]边双连通分量 [题意&题解]http://blog.csdn.net/geniusluzh/article/details/6619575 (注意第一份代码是错误的) 一些细节: 1. ...
- 面试整理(3)js事件委托
事件委托主要用于一个父容器下面有很多功能相仿的子容器,这时候就需要将子容器的事件监听交给父容器来做.父容器之所以能够帮子容器监听其原理是事件冒泡,对于子容器的点击在冒泡时会被父容器捕获到,然后用e.t ...
- HttpUtility.UrlEncode与Server.UrlEncode()转码区别
在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试: string file="文件上(传)篇.doc";string Server_UrlEncode=Server ...