实现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. 配置





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

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

相关推荐
Hello eveybody4 分钟前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp
2301_7950997417 分钟前
让 CSS Grid 自适应容器尺寸的动态布局方案
jvm·数据库·python
AI进化营-智能译站20 分钟前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
呆萌的代Ma22 分钟前
python读取并加载.env的配置文件
python
Muyuan199823 分钟前
27.RAG 系统中的上下文充分性判断:从 Chunk 数量、FAISS 距离到 LLM Relevance Gate
python·django·pdf·fastapi·faiss
iCxhust24 分钟前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
莎士比亚的文学花园1 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
图码1 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
U盘失踪了1 小时前
python curl转python脚本
开发语言·chrome·python
charlie1145141911 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c