Windows下同时安装python 2 和 3 详细教程 ——为了GitHack工具 同时安装python2和3的过程记录

2023-10-29

搜了半天发现 GitHack竟然真的只能在python2中运行,心痛。不得不去下python2。(我之前下的是python3)

1. 下载、安装 python2和3

1)官网:https://www.python.org/downloads/windows/,点击download——Windows即可看到各种版本,我选的是 Python 2.7.18。点击该链接可直接下载:https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi

2)开始安装:

建议 是安装在默认的C盘根目录下,非常便于查找。建议安装python3也是这样。
然后一路 next 就可以了。

python3是之前安装的,过程没有记录。所以这里直接给大家贴上我参考的文章所说的步骤(参考链接在文章末尾)

在这里插入图片描述

两个都安好后 当前path环境变量中只配置了python 3.x,默认的python命令执行的也是 python 3.x。

所以接下来需要配置python 2.x 的环境变量

2- 配置python 2.x 的环境变量

此处需要将两个目录添加到path环境变量中:

  • python命令文件所在目录: python 2.x安装目录
  • pip、easy_install等其他脚本文件所在目录: python 2.x安装目录下的Scripts目录

怎样操作:右键 我的电脑 ——> 属性 ——> 高级系统设置 ——> 高级选项卡(默认)——> 环境变量 ——> 系统环境变量下的 Path ——> 编辑.

将下面这两行内容 分别添加到Path变量的开始位置:(先新建 后 上移 到第一行)
C:\Python27
C:\Python27\Scripts

加上 之前python3 已经配置好的环境变量应该是如下界面:(我安装的python3不是C盘默认路径)
在这里插入图片描述

3. 将python 2.x 和 python 3.x的相关命令区分开来

在看下面的文章之前,建议看下另外一种方法:windows下同时装了Python3和Python2,如何区分使用?,这个方法不用更改什么,直接使用不同的命令来区分python2和3,这个是我后来才找得到的,如果觉得这个不够方便,可以接着往下看。

解决方案:将 python.exe 和 pythonw.exe名称后都添加一个各自的后缀2或3。
————————有人说pythonw.exe可以不用改,我懒得改回来啦,大家可以先只改一个试试。O(∩_∩)O

具体如下:
找到 python2 和 python3 的安装目录,修改 python2.x 和 python3.x 中 python.exepythonw.exe 的名称为 python2.exepythonw2.exepython3.exepythonw3.exe。如下图(修改四个)
在这里插入图片描述在这里插入图片描述

然后在运行cmd命令,输入 python2 的确可以运行 python2.x 版本

理应来说 输入 python3 即可运行 python3.x 版本,但是我输python3竟然没反应,后来发现我要输 python 才可运行python3.x版本。如下图:

在这里插入图片描述
到这里两者 切换的问题已经解决了

本来为了区分两者的命令 还有一步:将图中所示的python3.x 目录下的 pip.exe文件删除,但是我没有删,貌似也没什么影响,但是这里还是写出来供大家参考。
在这里插入图片描述

最后:解决两者pip的共存问题

Python 安装包需要用到包管理工具pip,但是当同时安装python2和python3的时候,pip只是其中一个版本。为了保证共存,分别重新安装pip。

1.安装pip2:在Dos中输入:python2 -m pip install --upgrade pip --force-reinstall,如下图显示重新安装成功。
在这里插入图片描述
2.安装 pip3: 在Dos中输入:python3 -m pip install --upgrade pip --force-reinstall 。显示重新安装成功。
(我的是输入python -m pip install --upgrade pip --force-reinstall 才成功)

3.现在可以通过pip2 -V 和 pip3-V 查看两个版本的pip信息,以后只需运行 pip2 install XXX 和 pip3 install XXX 即可安装各自的python包。

到这里 pip共存问题 也已经解决啦!


特此感谢以下大佬的文章:文章1文章2文章3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下同时安装python 2 和 3 详细教程 ——为了GitHack工具 同时安装python2和3的过程记录 的相关文章

随机推荐

  • MySQL触发器trigger的使用

    Q 什么是触发器 A 触发器是与表有关的数据库对象 在满足定义条件时触发 并执行触发器中定义的语句集合 触发器的特性 1 有begin end体 begin end 之间的语句可以写的简单或者复杂 2 什么条件会触发 I D U 3 什么时
  • 线程的六种状态

    1 New 新建状态 线程刚被创建 start方法之前的状态 2 Runnable 运行状态 得到时间片运行中状态 Ready就绪 未得到时间片就绪状态 3 Blocked 阻塞状态 如果遇到锁 线程就会变为阻塞状态等待另一个线程释放锁 4
  • repo 使用

    repo 使用 repo start 创建并切换分支 repo start newbranchname all projectName repo start是对git checkout b 命令的封装 git checkout b 是在当前
  • 无监督特征选择算法综述

    无监督特征选择算法 Filter方法 只使用数据的内在属性 不使用聚类等其他辅助方法 速度快 单变量 Information based methods SUD Sequential backward selection method fo
  • 毕业设计-基于机器视觉的手写字体智能识别系统

    目录 前言 课题背景和意义 实现技术思路 一 系统整体结构框架设计 二 系统硬件设计 三 系统软件框架设计 四 实验与分析 五 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准
  • 分布式系统下的纠删码(二) -- Locally Repairable Codes (LRC)

    分布式系统下的纠删码 二 Locally Repairable Codes LRC 一 名词解释 MDS Maximun Distance Separable MDS 性质 是纠删码的一个重要性质 它保证n k m个磁盘中任意k个磁盘都可恢
  • OpenLayers官网教程-移动端地图和传感器

    这一系列翻译自openlayers官网的WorkShop OL官网提供了多个系列教程供开发者学习参考 其中QuickStart是面向初学者的hello world Tutorials提供了构建OL应用的一些基础知识 WorkShop 本系列
  • scss 样式穿透

    当一些组件 例如 轮播 全局引入时 只改当前页面的样式 用css类选择器不能直接选择更改 应用scss样式穿透 注 scoped让css只在当前组件生效 不考虑兼容问题 去掉scoped也可以直接更改css样式
  • # leetcode#5最长回文数C++

    leetcode 5最长回文数C 一 思路一 中心扩散 对每一个字符 检测它与它旁边的数是否为回文数 如果是 那么再扩展它 的长度检查 分奇偶情况讨论 得到以该字符为中心最长的回文数 在遍历过程中用max 2 储存该目前最长的回文数位置和长
  • iphone11屏比例_iPhone每一代的屏幕尺寸比例是多少

    iPhone2G屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhone3G屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhone3GS屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhon
  • QOpenGLWidget 纹理贴图

    环境 QT 5 12 8 本人初学Opengl 想要绘制一个正方形并且贴纹理 以下是参考别人代码自己整理的 创建QT工程 结构如下 代码如下 glwidget h ifndef GLWIDGET H define GLWIDGET H in
  • [Python 与 炒股] TuShare 使用篇之三

    2016年新年第一贴 大年夜搞这个只能说明春晚实在是有点无聊 在之前的blog里写了一个最简单的例子 http blog csdn net robertsong2004 article details 50642655 现在试一下简单的分析
  • 渗透测试-01信息收集

    0x01信息收集 1 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 以便我们在后续的渗透过程更好的进行 比如目标的站点IP 中间件 脚本语言 端口 邮箱等等 信息收集包含资产收集但不限于资产收集 2 信息收集的意义 1 信息收集
  • 使用 easyjson,生成 xxx_easyjson.go 文件之后,对测试结果所产生的影响

    文章评论 原文地址 https blog csdn net luslin1711 article details 90244468 正文 博主 你好 文中的测试结果 似乎不是很正确 由于评论区字数的限制 我另开一篇文章 请您解惑 以下是我的
  • 轻量级c语言开源日志库log.c介绍 - 实现不同级别和参数化日志打印

    前言 c语言没有现成的日志库 如果要记录日志 需要自己封装一个日志库 如果要实现日志级别和参数打印 还是比较麻烦的 正好在github找到了一个c语言开源日志库 可以实现日志级别打印 参数打印 而且还会记录日期和行号 最重要的是代码非常少
  • Google API 设计指南-文档

    翻译自 API Design Guide Documentation 这一章是为 API 添加内部文档的指南 大部分 API 有概述 教程和更高级别的参考文档 此指南不讨论 API 名 资源名和方法名的信息请查看命名约定 注释格式 在 pr
  • OpenGL ES几个概念-顶点着色器、片元着色器、EGL

    一 OpenGL ES OpenGL ES是使用在手机端和嵌入式里的3D图形应用程序编程接口 是跨平台的API OpenGL ES是OpenGL的简化版本 OpenGL2 x 版本相比 1 x 版本有较大差异 1 x 版本为 fixed f
  • Kylin Flink Cube 引擎的前世今生

    Apache Kylin 是一个开源的 分布式的分析型数据仓库 提供Hadoop Spark 之上的 SQL 查询接口及多维分析 OLAP 能力以支持超大规模数据 它能在亚秒内查询巨大的表 Kylin 的核心思想是 预计算 将数据按照指定的
  • C++11之智能指针(unique_ptr、shared_ptr、weak_ptr、auto_ptr)浅谈内存管理

    目录 前言 智能指针 使用方法 unique ptr 实现unique ptr类 使用uniquePtr shared ptr 实现SharedPtr 使用shared ptr weak ptr 使用weak ptr 前言 下面这段代码看起
  • Windows下同时安装python 2 和 3 详细教程 ——为了GitHack工具 同时安装python2和3的过程记录

    搜了半天发现 GitHack竟然真的只能在python2中运行 心痛 不得不去下python2 我之前下的是python3 文章目录 1 下载 安装 python2和3 2 配置python 2 x 的环境变量 3 将python 2 x