windows 系统安装 python 的最好方式也许就是不安装

最近更换了一台windows电脑,拿到电脑之后第一步自然就是要搞开发环境,本来打算体验一下 ServBay(www.servbay.com/zh-CN) 这个产品,但是我用到的功能比较简单,直接上这个东西感觉有点太重量级了。于是到官网去下载python准备安装,结果还真遇到了不少问题,考虑到网上介绍python安装的教程都比较老了,这里直接把过程中遇到的问题记录一下,做下分享。

一、 核心问题

目前在windows机器上面安装python,去python官网下载下来的安装文件不是具体的某一个版本的python,而是一个叫做"python-manager-25.0.msix"东西 这个东西被称作为"python install manager" 并且后面这种方式安装python将成为windows系统安装python的主流方式,官网原文如下:

The Python install manager for Windows is our tool for installing and managing runtimes. The traditional executable installer will stop being released with Python 3.16 As well as the files below, the Python install manager can be installed using the Microsoft Store app. For most users, this is the recommended approach.

从上面这段描述来看 通过python install manager将成为日后的主流方案,但是当你通过这种方式来安装完python之后,你大概率会遇到两个问题:

  • pip 命令无法使用:虽然 python -V 正常,但输入 pip 报错。 原因:Python 安装目录下的 Scripts 文件夹没有添加到系统环境变量 Path 中。

  • 多版本切换困难 当你使用python -V 命令检查系统当前在用的python版本时默认会是当前最新的版本,怎么才能动态切换系统的python版本,变成一个需要亟待解决的问题。

  • py命令与python命令 当你在命令行中执行 python -V 和 py -V 时你会发现两个命令竟然输出的东西一模一样,那么这个py命令和python命令的关系又是怎样的呢?

本文将主要介绍这些问题的解决方案,并对关键问题进行说明。

二、 基础概念解析

1. python vs py 命令

  • python (工人):直接调用 python.exe。它依赖环境变量 PATH,谁排在前面就启动谁,不灵活,容易版本冲突。
  • py (工头):Windows 独有的 Python 启动器。它不依赖 PATH,而是扫描注册表。
  • py:自动启动最新版。
  • py -3.8:强制启动 3.8 版本。 结论:在 Windows 命令行里,可以用 py 全面替代 python。但是也仅限是windows环境

下面几个py命令需要做重点关注

shell 复制代码
# 列举当前安装了哪些版本的python,标记 * 符号的是当前正在使用的版本
py --list

# 使用3.12版本的python运行指定脚本
py -V:3.13 xxx.py

# 上面的这个命令可以简写为
py -3.13 xxx.py

可以发现py命令是严格区分版本的 ,并且截止目前py 还没有那种可以动态切换当前正在使用的python版本的命令,官方的想法应该是想让我们时刻都知道命令和版本之间的对应关系。

此外 当你使用 python install manager 安装python时 默认会把python安装到C:\Users\你的用户名\AppData\Local\Python下面,还会把下图中的 bin 文件夹自动添加到系统环境变量(当前用户的Path环境变量下面)中:

2. 怎么运行pip来安装依赖呢?

假定我现在需要使用 pip 来安装 uv ,现在则需要使用下面的命令:

shell 复制代码
 py -m pip install uv

这比我们之前直接安装指定版本的python的时候需要额外增加一个前缀 py -m 这个 -m 参数的含义是告诉 Python 不要运行文件,而是去已安装的库里找叫 pip 的模块并运行它。

通过上面的命令安装uv之后你会发现两个问题:

  • 直接在终端使用uv 直接报错,提示找不到可运行文件

其实这个很好理解,使用上面的文件会直接把uv放到当前正在运行的python安装目录的Script目录下,这个目录还不在系统Path环境变量下,自然提示找不到。

这里额外说明下如果你使用下面的命令安装,则会把uv安装到指定版本的python安装目录的Script目录下

shell 复制代码
 py -3.13 -m  pip install uv

回到开始的问题 这时候运行uv提示找不到路径怎么办?

第一种方式自然是把这个路径给添加到环境变量里面,这种方案可行,但是并不推荐,下面介绍最适合windows系统安装uv命令的方案

3.安装uv的最佳方案

安装uv的最佳方案是通过下面的命令安装,而不要去使用pip来安装

bash 复制代码
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

通过这种方式安装uv之后,会自动添加环境变量,一行命令即可畅快使用uv来做依赖管理,以及虚拟环境创建。

总结:其实你可能不需要在windows电脑手动安装python

其实对于windows电脑,你可能只需要安装uv即可。只安装uv会有下面的几个好处

  • 系统零污染: 你的 控制面板 -> 卸载程序 列表里干干净净,没有那一堆 "Python 3.x", "Python Launcher" 之类的东西。
  • 版本自由: 你想用 Python 3.8?uv run --python 3.8。 想用 Python 3.13?uv run --python 3.13。 uv 会把这些版本都管理得井井有条,用完甚至可以一键清理。

唯一的改变就是你在powershell上面无法使用python命令 需要学会把 python main.py 改为 uv run main.py

相关推荐
f***68601 小时前
Spring Boot 热部署
java·spring boot·后端
5***26221 小时前
Spring Boot实现定时任务
java·spring boot·后端
Y***98511 小时前
SpringBoot整合Email 邮件发送详解
java·spring boot·后端
i***11861 小时前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
ziwu1 小时前
【动物识别系统】Python+TensorFlow+Django+人工智能+深度学习+卷积神经网络算法
后端·深度学习·图像识别
该用户已不存在1 小时前
免费 SSL 证书缩短至 90 天,你的运维成本还能hold住吗
前端·后端·https
00后程序员1 小时前
怎么在 iOS 上架 App,从构建端到审核端的全流程协作解析
后端
Z***G4791 小时前
SpringBoot线程池的使用
java·spring boot·后端
L***d6701 小时前
Spring Boot 整合 Keycloak
java·spring boot·后端