实现Python多版本共存

Python 多版本共存 环境变量配置及

在开发过程中,不同项目可能依赖不同 Python 版本(如旧项目需 3.7.x,新项目用 3.14.x),实现多版本共存的核心是环境变量优先级控制虚拟环境隔离。本文将详细拆解配置原理,提供跨系统实操步骤。

一、Python 版本调用的底层逻辑

1. 环境变量(PATH)的作用

  • 系统执行python命令时,会按PATH环境变量中路径的顺序依次查找 Python 解释器(python.exe/python3),找到第一个匹配的解释器后直接执行。

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;

  • 在「系统变量」中找到Path,点击「编辑」,调整排序

2. python.exe 和 pip.exe的作用

(1)python.exe:Python 的 "运行引擎"

  • python.exe 是 Python 解释器的可执行程序,核心作用是执行你的 Python 代码文件,相当于运行 Python 脚本的 "发动机"。
  • 你写的 .py 脚本本身是纯文本,无法直接运行,必须通过 python.exe 解析、编译并执行;
  • 不同 Python 版本(3.7.4/3.14.2)对应各自的 python.exe

(2)pip.exe:Python 的 "软件管家"

  • pip.exe 是 Python 官方的包管理工具,核心作用是安装、卸载、更新 Python 第三方库(比如你要用到的 requests、cryptography 等):
  • Python 自带的基础功能有限,开发时需要的第三方库(如对接 API、加密处理),都靠 pip.exe 从官方仓库下载安装;每个 Python 版本也对应独立的 pip.exe(在 Scripts 目录下)
  • 命令行输入 pip install requests,就是调用默认版本的 pip.exe 下载并安装 requests 库。pip.exe 会绑定对应的 python.exe:比如 3.14.2 的 pip.exe 安装的包,只能被 3.14.2 的 python.exe 识别;这也是多版本共存时,要区分 pip3.4.7和pip3.14.2 的原因 ------ 确保包安装到对应版本的环境中。

二、多版本共存方式1:进入python.exe文件所在文件夹操作

1. 带对应版本的路径直接执行,但是注意python.exe和pip.exe不在一个目录

二、多版本共存方式2:切换PATH环境变量中的路径

1. 配置python.exe环境变量

  • 若 3.14.2 的安装路径在PATH中排前,输入python --version会默认调用 3.14.2;

2. 配置pip.exe环境变量

  • 若 3.14.2 的安装路径在PATH中排前,输入pip --version会默认调用 3.14.2;

四、多版本共存方式3:修改python.exe名字

1. 原理分析

  • 如下图,其实pip.exe和pip3.14.exe是同一个文件,名字不同,所以通过pip --version pip3.14 --version执行结果是一样的
  • 所以根据这个原理,我们更改一下python.exe的名字,这样就可以区分python3.7.4和python3.14.2了
  • 但是这样操作基本功能实现没问题,复杂的调用不确定,可以直接cmd cd 目标python路径,不修改原本文件是最稳妥的,根据自己情况来吧


    2. 配置





不常用的版本按这个进行配置,然后常用的版本正常使用就行了

大家有任何疑问或想法,欢迎在评论区留言讨论,也可以关注我,后续会分享更多实用内容。

相关推荐
大圣编程2 小时前
Java 多维数组详解
java·开发语言
殳翰5 小时前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
落寞的星星5 小时前
这个对象就包含了已经转换好的DFA和各种词法分析器运转所需要的参数。下一步,我们就可以用ScannerInfo对象创建出Scanner对象,请看下面的代码:
开发语言·c#
nothing&nowhere5 小时前
用 Python 做问卷数据清洗:无效样本检测与处理实战
开发语言·python·数据清洗·数据处理·问卷星·问卷星脚本·刷问卷
花酒锄作田6 小时前
如何发布自己的 Python 库到 PyPI
python
2601_961593426 小时前
Rust 开发环境配置繁琐?RustRover 开箱即用搞定编码调试
开发语言·后端·macos·rust
researcher-Jiang6 小时前
Design Patterns——Template Method入门到情景实战
python·设计模式·模板方法模式
HZZD_HZZD6 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
多加点辣也没关系9 小时前
JavaScript|第4章:类型转换
开发语言·javascript