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





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

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

相关推荐
wdloumiga9 分钟前
使用 Construct 3零基础做一些2D小游戏
python·游戏·游戏2d
绿浪198413 分钟前
c# 结构体 能不能直接封送检测
开发语言·c#
用户83562907805131 分钟前
使用 Python 查找和替换 Word 文档中的文本
后端·python
黑马水牛1 小时前
Carla仿真系列:9_Carla 单目障碍物测距,四种方法原理与实测
经验分享·python·深度学习·计算机视觉·ros·传感器·carla仿真
橙橙笔记1 小时前
QT的安装
开发语言·qt·安装·软件
Python私教1 小时前
多个项目怎么安全合并?适配层、双轨验证与可回滚切换
python·软件架构·系统迁移
船厂电气自动化ai大模型2 小时前
AI大模型与数学第42课:泰勒级数完整展开(神经网络近似核心)
人工智能·python·深度学习·算法·机器学习
格林威2 小时前
C#图像像素放大:邻域平均、双线性插值实现像素放大的C#实现代码
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
兔兔兔兔12 小时前
记录C++ 8
开发语言·c++
刘新洲2 小时前
我以为 AI Agent 只是调模型,直到我亲手补上审批、Outbox 和故障恢复
python·agent·fastapi