Windows平台配置Python环境的入门教学
一、开篇:Windows用户的专属配置指南
在上一篇文章中,我带你完成了Python的初步安装。但光把Python装上去还远远不够——Windows作为Python开发的"非原生"平台(Python诞生于Unix环境),有它自己的一套配置逻辑和常见坑点。这篇文章就是Windows用户的专属深度指南。
我会把Windows平台上Python开发的各种配置细节、实用技巧、常见问题一网打尽。读完这篇,你就能把Windows打造成一个顺手的Python开发环境。
二、重新认识Python在Windows上的安装结构
2.1 Python安装目录全解析
当你把Python装到 D:\Python312(或其他自定义路径)后,来看看这个目录里都有什么:
D:\Python312\
├── python.exe ← 这是Python解释器的主程序
├── pythonw.exe ← 无控制台窗口的Python解释器(运行GUI程序用)
├── Lib\ ← Python标准库,所有自带的模块都在这里
│ ├── os.py ← os模块的源码
│ ├── json.py ← json模块的源码
│ └── site-packages\ ← 第三方库的安装目录(pip安装的包在这里)
├── Scripts\ ← 可执行脚本目录
│ ├── pip.exe ← pip包管理工具
│ ├── pip3.exe
│ └── jupyter.exe ← 如果安装了jupyter
├── Doc\ ← Python官方文档(如果安装时勾选了)
├── include\ ← C头文件(写C扩展时用)
├── libs\ ← C语言静态库
├── tcl\ ← Tcl/Tk GUI库
└── Tools\ ← 一些实用工具脚本
了解这个结构很有用。比如你以后想知道某个第三方库装到哪里了,去 Lib\site-packages\ 找就行。
2.2 python.exe vs pythonw.exe
Windows上有两个解释器程序:
python.exe:运行时会打开一个控制台窗口,适合命令行脚本pythonw.exe:运行时没有控制台窗口,适合GUI程序(比如用Tkinter写的桌面应用)
# test_gui.py - 用pythonw.exe运行不会有黑窗口
import tkinter as tk
root = tk.Tk()
root.title("我的GUI程序")
tk.Label(root, text="Hello from Python!").pack()
root.mainloop()
如果你双击运行上述脚本,用 pythonw.exe 就不会弹出一个黑黢黢的命令行窗口。
2.3 Python Launcher(py.exe)详解
这是Windows平台上独有的好东西。在安装Python时如果勾选了"py launcher",你的系统里会多一个 py.exe 命令。
py launcher的作用:让你在一台电脑上方便地管理和切换多个Python版本。
# 查看系统中安装了哪些Python版本 py --list # 可能的输出: # -3.12-64 * # -3.11-64 # -3.9-32 # 星号(*)表示当前默认版本 # 用指定版本运行脚本 py -3.12 hello.py # 用Python 3.12运行 py -3.11 hello.py # 用Python 3.11运行 py -3.9 hello.py # 用Python 3.9运行 # 用默认的Python 3版本运行 py -3 hello.py # 启动指定版本的交互式环境 py -3.12
py.exe 的工作原理是:它安装在 C:\Windows\ 目录下(这个目录在PATH中),运行时会根据参数去查找已安装的Python版本,然后调用对应的 python.exe。
你可以为每个Python脚本指定它需要的Python版本。在脚本的第一行添加shebang:
#!python3.12
# 这个脚本强制使用Python 3.12运行
import sys
print(f"当前Python版本: {sys.version}")
py.exe 会读取这个shebang并选择正确的解释器。
注意:py launcher只在Windows上有。Mac和Linux用的是 python3 命令或pyenv等工具。
三、PATH环境变量深度解析
3.1 PATH到底是干什么的
这是Windows新手最困惑的概念之一。让我用大白话解释:
当你在命令行输入 python 时,系统怎么知道去执行 D:\Python312\python.exe 呢?答案就是PATH。
PATH是一个"查找路径列表"。系统按顺序逐个目录查找你要执行的程序,找到了就运行,找不到就去下一个目录找,所有目录都找不到就报"不是内部或外部命令"。
# 查看当前PATH(在cmd中)
echo %PATH%
# 查看当前PATH(在PowerShell中)
$env:PATH -split ';'
# 用Python查看PATH
python -c "import os; [print(p) for p in os.environ['PATH'].split(';') if p]"PATH中每个目录用分号(;)隔开。一个典型的PATH可能是:
C:\Windows\system32;C:\Windows;C:\Python312;C:\Python312\Scripts;...
3.2 PATH中关于Python的条目
一个完整配置的Windows Python环境,PATH中应该有两个条目:
D:\Python312— 包含python.exe,让你能直接输入pythonD:\Python312\Scripts— 包含pip.exe、jupyter.exe等脚本工具
# 验证PATH配置是否正确 where python # 应该显示Python安装路径 where pip # 应该显示Scripts路径
如果这两个命令都正常显示路径,说明PATH配置正确。
3.3 手动配置PATH的正确步骤
如果你安装时忘了勾选"Add Python to PATH",或者想修改PATH,按以下步骤操作:
① 按 Win + R,输入 sysdm.cpl,回车(快速打开系统属性)
② 点击"高级"选项卡→"环境变量"按钮
③ 环境变量窗口分为上下两部分:
- 上面是"用户变量":只对当前用户生效
- 下面是"系统变量":对所有用户生效
④ 选中"用户变量"中的 Path,点击"编辑"
⑤ 点击"新建",添加两条记录(按你自己的安装路径):
D:\Python312 D:\Python312\Scripts
⑥ 用"上移"按钮把这两条移到靠前的位置(系统会按从上到下的顺序查找)
⑦ 一路点"确定"关闭所有窗口
关键点:修改环境变量后,之前打开的命令行窗口不会生效。你需要关闭后重新打开命令行,或者重启电脑。
3.4 PATH优先级导致的问题
这是Windows上最经典的Python坑:
场景:你先装了Python 3.11(在 C:\Python311),后来又装了Python 3.12(在 D:\Python312)。现在你在命令行输入 python,启动的是哪个版本?
答案是:PATH中排在前面的那个目录里的python.exe。
# 检查当前python命令实际指向的文件 where python
解决方法:
- 调小PATH中条目的顺序,把你需要用的版本放在前面
- 或者直接用
py -3.12来指定版本(推荐) - 或者在项目中使用虚拟环境,隔离不同版本
四、pip在Windows上的深度配置
4.1 pip配置文件的位置
在第2篇文章中我们简单配置了pip镜像源。这里详细说说Windows上pip的配置文件体系。
pip的配置有三级优先级(后面覆盖前面):
| 级别 | 配置文件位置 | 作用范围 |
|---|---|---|
| global | %PROGRAMDATA%\pip\pip.ini | 系统全局 |
| user | %USERPROFILE%\pip\pip.ini | 当前用户 |
| site | {python安装目录}\Lib\site-packages\pip\pip.conf | 当前Python实例 |
# 查看pip当前生效的配置 pip config list # 查看配置文件的具体位置 pip config list -v
推荐使用用户级配置(%USERPROFILE%\pip\pip.ini),不影响其他用户,也不需要管理员权限。
4.2 完整的pip.ini配置参考
[global]
# 镜像源
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
# 额外的镜像源(主源挂了就尝试这些)
extra-index-url =
https://mirrors.aliyun.com/pypi/simple
https://pypi.mirrors.ustc.edu.cn/simple
# 超时时间(秒)
timeout = 120
# 信任的主机(跳过SSL验证)
trusted-host =
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
pypi.mirrors.ustc.edu.cn
[install]
# 安装时总是显示进度条
progress-bar = on
# 不使用缓存(调试时开启)
# no-cache-dir = false
[list]
# pip list 的输出格式 (legacy, columns, freeze, json)
format = columns4.3 pip缓存管理
pip会把下载的包缓存到本地,以后再安装相同版本的包时就不需要重新下载了:
# 查看缓存目录 pip cache dir # 查看缓存占用空间 pip cache info # 清理缓存(释放磁盘空间) pip cache purge # 只清理特定包的缓存 pip cache remove requests
缓存目录默认在 %LOCALAPPDATA%\pip\cache,随着时间推移可能会占用几个G的空间。如果你C盘空间紧张,定期清理一下。
4.4 安装包时的常用选项
# 安装指定版本 pip install requests==2.28.0 # 安装大于等于某版本 pip install 'requests>=2.28.0' # 安装时不使用缓存(适用于怀疑缓存有问题) pip install requests --no-cache-dir # 安装到用户目录而不是系统目录(不需要管理员权限) pip install requests --user # 从requirements.txt批量安装 pip install -r requirements.txt # 生成当前环境的包列表 pip freeze > requirements.txt # 升级pip自身 python -m pip install --upgrade pip
五、Windows Terminal:命令行体验升级
5.1 告别老旧的CMD
Windows自带的命令提示符(CMD)功能非常有限:不能多标签页、字体难看、颜色单调、不支持Unicode的一些特殊字符。
Microsoft开发了一款全新的终端工具:Windows Terminal。它支持多标签页、自定义主题、GPU加速渲染、Unicode完美支持。你可以在Microsoft Store中免费下载。
5.2 安装Windows Terminal
① 打开Microsoft Store(Win 10/11自带)
② 搜索"Windows Terminal"
③ 点击"获取"安装
或者使用winget命令行安装:
winget install Microsoft.WindowsTerminal
5.3 配置Windows Terminal用于Python开发
打开Windows Terminal,点击标签栏的"+“下拉菜单→"设置”(或按 Ctrl + ,)。
推荐配置项:
外观设置(settings.json核心部分):
{
"profiles": {
"defaults": {
"fontFace": "Cascadia Code", // 微软的现代等宽字体,支持连字
"fontSize": 12,
"cursorShape": "filledBox",
"startingDirectory": "D:\\Projects\\Python" // 默认打开的工作目录
},
"list": [
{
"guid": "{...}",
"name": "Python Dev",
"commandline": "cmd.exe",
"startingDirectory": "D:\\Projects\\Python",
"tabTitle": "Python",
"suppressApplicationTitle": true
}
]
}
}Windows Terminal支持在同一个窗口里同时打开CMD、PowerShell、Git Bash等多个标签页。写Python时,可以一个标签页跑程序,另一个标签页操作git,效率极高。
5.4 让终端运行python更方便
在Windows Terminal的设置中,你可以添加一个专门的Python配置:
{
"guid": "{生成一个新的GUID}",
"name": "Python 3.12",
"commandline": "D:\\Python312\\python.exe",
"icon": "D:\\Python312\\python.exe",
"hidden": false
}这样在Windows Terminal的"+"菜单中就会多出一个"Python 3.12"的选项,点击直接打开Python交互环境。
六、PowerShell中的Python使用技巧
6.1 PowerShell vs CMD
PowerShell是Windows的新一代命令行解释器,比CMD强大得多。如果你还在用CMD,建议迁移到PowerShell或Windows Terminal中配合使用。
# PowerShell中运行Python脚本
python hello.py
# 使用管道
python -c "print('hello')" | Out-File output.txt
# 查看Python命令的帮助
Get-Help python
# PowerShell特有的变量和Python配合
$name = "小明"
python -c "print('Hello $env:name')" # 这样不行
python -c "import os; print(f'Hello {os.environ[\"name\"]}')" # 这样也不行
# 正确做法:
$env:NAME = "小明"
python -c "import os; print('Hello ' + os.environ['NAME'])"6.2 PowerShell执行策略问题
在PowerShell中运行Python虚拟环境的激活脚本时,可能会遇到执行策略错误:
# 错误信息: # 无法加载文件 xxx\Scripts\Activate.ps1,因为在此系统上禁止运行脚本 # 查看当前执行策略 Get-ExecutionPolicy # 修改为允许本地脚本运行(需要管理员权限的PowerShell) Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
RemoteSigned 策略允许运行本地创建的脚本,但下载的脚本需要数字签名。这是安全和使用便利之间的一个平衡选择。
6.3 创建PowerShell别名简化操作
编辑你的PowerShell配置文件:
# 查看配置文件路径 echo $PROFILE # 如果配置文件不存在,创建它 New-Item -Path $PROFILE -Type File -Force # 编辑配置文件 notepad $PROFILE
在配置文件中添加Python相关的别名:
# Python相关别名
function py { python $args }
function pipi { pip install $args }
function pipu { pip uninstall $args }
function pipl { pip list }
function venv-new { python -m venv $args[0]; Write-Host "虚拟环境 $args[0] 创建完成!" }
function venv-on { .\$args[0]\Scripts\Activate.ps1 }
function venv-off { deactivate }
# 快速进入常用的Python项目目录
function cd-py { Set-Location D:\Projects\Python }保存后重新打开PowerShell,你就可以用简短的命令操作了:
cd-py # 快速进入Python目录 venv-new myproject # 创建虚拟环境 venv-on myproject # 激活虚拟环境 pipi requests # 安装包 pipl # 列出已安装的包
七、多版本Python共存的完整方案
7.1 为什么需要多版本
实际工作中你可能会遇到这些场景:
- 公司老项目用的是Python 3.9,新项目要用Python 3.12
- 测试一个第三方库是否兼容不同Python版本
- 想试用最新版本Python的新特性,但保持主力开发版本不变
7.2 方案一:py launcher(最推荐)
这是Windows上最简单优雅的方案:
# 查看所有已安装的Python py --list # 创建虚拟环境时指定版本 py -3.9 -m venv project_old py -3.11 -m venv project_stable py -3.12 -m venv project_new # 用pip安装包时指定版本 py -3.9 -m pip install pandas py -3.12 -m pip install pandas # 在脚本shebang中指定版本 #!python3.9 import sys print(sys.version)
7.3 方案二:虚拟环境隔离(必学)
无论你用哪个Python版本,每个项目都应该有自己的虚拟环境:
# 创建虚拟环境 python -m venv myproject_env # 激活虚拟环境(Windows) myproject_env\Scripts\activate # 激活后,命令行前缀会显示环境名 (myproject_env) D:\Projects> # 此时安装的包都只在当前环境中 pip install pandas # 退出虚拟环境 deactivate
虚拟环境的核心思想:每个项目拥有一套独立的第三方包。项目A用pandas 1.5,项目B用pandas 2.0,互不干扰。
7.4 方案三:使用conda
如果你涉及数据科学、机器学习,conda是一个威力强大的选择:
# 安装Miniconda(轻量版,只有conda+python+pip) # 从 https://docs.conda.io/en/latest/miniconda.html 下载 # 创建不同版本的Python环境 conda create -n py39 python=3.9 conda create -n py311 python=3.11 conda create -n py312 python=3.12 # 激活环境 conda activate py312 # 安装包(conda会处理更复杂的依赖关系) conda install numpy pandas matplotlib # 查看所有环境 conda env list # 导出环境配置 conda env export > environment.yml
conda和pip的核心区别在于:conda不仅管理Python包,还管理非Python的依赖(比如C语言库、系统级工具)。这对科学计算库(numpy、scipy等)尤其重要,因为它们底层依赖大量C/Fortran库。
八、常用IDE和编辑器的选择
8.1 各编辑器简明对比
| 工具 | 类型 | 适合人群 | 优缺点 |
|---|---|---|---|
| IDLE | 简易IDE | 纯新手 | Python自带,无需安装,但功能太少 |
| PyCharm | 重量级IDE | 专业开发者 | 功能最全,但较吃内存(建议8GB以上) |
| VS Code | 轻量级编辑器+插件 | 通用开发者 | 轻量灵活,插件丰富,免费 |
| Sublime Text | 纯编辑器 | 简洁主义 | 启动极快,Python支持要自己配 |
| Notepad++ | 纯编辑器 | 简单编辑 | 超级轻量,只适合偶尔看代码 |
后续我们有专门的PyCharm和VS Code详细教程。这里给出结论:
- 如果你是新手,想省心:选PyCharm社区版
- 如果你需要同时写多种语言:选VS Code
- 如果你的电脑配置不高(4GB内存):选VS Code或Sublime Text
- 如果你做数据科学:选Jupyter Notebook / Jupyter Lab
8.2 不用IDE也能写Python
在配置好PATH的前提下,任何文本编辑器都可以写Python:
# 用记事本写Python(最简方法) notepad hello.py # 写好代码后,命令行运行 python hello.py
当然,没有代码补全和语法高亮,写起来会比较辛苦。但理解这一点很重要:IDE只是辅助工具,真正的"写代码+运行"就靠python.exe就够了。
九、Windows特有的常见问题排查
9.1 “api-ms-win-crt-runtime-l1-1-0.dll 缺失”
这是Windows 7或Windows Server 2008 R2等老系统上常见的问题。
原因:缺少Visual C++ Redistributable for Visual Studio 2015运行库。
解决方法:
- 下载并安装 VC_redist.x64.exe(从微软官网)
- 或者把系统更新到Windows 10/11
9.2 Python安装后无法通过https下载包
WARNING: Retrying ... SSL: CERTIFICATE_VERIFY_FAILED
原因:通常是公司网络有代理或者系统根证书过期。
解决方法:
# 临时跳过SSL验证(不推荐,仅用于紧急情况) pip install requests --trusted-host pypi.org --trusted-host files.pythonhosted.org # 永久解决(推荐):更新根证书 # 方法1:安装/更新 certifi 包 pip install --upgrade certifi # 方法2:在pip.ini中配置信任主机(见第四节)
9.3 中文编码问题
Windows的默认编码是GBK,而Python 3默认使用UTF-8。这在处理中文文件时可能出问题:
# 写文件时指定编码
with open('中文文件.txt', 'w', encoding='utf-8') as f:
f.write('Python中文处理')
# 读文件时指定编码
with open('中文文件.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 如果遇到GBK编码的文件
with open('老文件.txt', 'r', encoding='gbk') as f:
content = f.read()从Python 3.7开始,Windows上的Python默认使用UTF-8编码。但为了兼容性,处理中文文件时最好显式指定 encoding='utf-8'。
9.4 文件关联问题
双击 .py 文件时可能出现的情况:
- 直接运行:代码一闪而过(因为是控制台程序,执行完就关了)
- 用编辑器打开:如果你装了PyCharm或VS Code
- 显示"打开方式"对话框:没有正确设置文件关联
修改方法:右键 .py 文件→"属性"→"打开方式"→选择你想要的程序。
十、Windows上Python开发的最佳实践总结
一套完整的、精心配置的Windows Python开发环境应该包括:
- Python 3.11或3.12:从python.org下载安装,务必勾选"Add Python to PATH"
- pip镜像源配置:
%USERPROFILE%\pip\pip.ini中配置清华或阿里镜像 - py launcher:利用它管理多版本Python
- Windows Terminal:取代老旧的CMD,享受多标签和美观界面
- 代码编辑器:PyCharm社区版或VS Code,根据个人偏好选择
- 每个项目使用虚拟环境:
python -m venv env,隔离项目依赖 - 编码习惯:文件操作时显式指定
encoding='utf-8'
把这七样配置好,你的Windows就完全可以胜任从入门学习到专业开发的Python工作。不要相信"写Python必须用Mac/Linux"的说法——Windows上的Python开发生态已经非常成熟,足够你从零到精通。
以上就是Windows平台配置Python环境的入门教学的详细内容,更多关于Windows Python环境配置的资料请关注脚本之家其它相关文章!


最新评论