外观
01. Windows 环境与工程起步
本章目标:在 Windows 上建立一个“可长期使用”的 Python 开发方式(不和系统环境打架),并能在 VS Code 里顺畅运行/调试脚本。
原理补充:Python 的依赖是“按环境隔离”的;在 Windows 上最容易踩坑的是把全局 Python、系统 PATH、不同项目依赖混在一起。
venv的核心价值就是把每个项目的解释器与依赖锁在项目内。
0) 你应该先知道的两件事
- 你在终端里看到的
python不一定是你“想要的那个 Python”。 - Windows 上很多教程会用
py(Python Launcher),但它不是必须;如果你用pyenv管理版本,也可以完全不用py。 - 你运行 VitePress 站点的命令是
pnpm docs:dev(不是pnpm run dev)。
1) 安装 Python(建议)
建议安装 Python 3.11+(生态与兼容性较稳)。
验证安装:
bash
python --version
pip --version如果你系统里有 py,也可以验证:
bash
py --version原理补充:
py是 Python Launcher for Windows。通常在你用 python.org 的 Windows 安装包安装 Python 时一并提供(安装选项里也可能可勾选/取消)。它的价值是当系统装了多个 Python 时,用py -3.11可以精确指定版本;而python容易受 PATH 顺序影响。
如果你没有 py 命令,要额外安装吗?
不一定。
- 如果你用的是
pyenv(Windows 常见是 pyenv-win):可以直接忽略py,用pyenv来选版本,再用python/pip。 - 如果你不使用 pyenv、但想要
py:重新运行 Python 安装器(python.org),确保安装了“Python Launcher(py.exe)”。
小提醒:你当前终端如果是 Git Bash / WSL,
py也不是“理所当然存在”的命令;即使存在也依赖 Windows PATH 是否包含py.exe。
如果你有 py,且 python/pip 指向不一致,可以用 py 明确指定版本:
bash
py -3.11 --version
py -3.11 -m pip --version原理补充:
py -3.11 -m pip ...能保证“pip 属于你指定的 Python 版本”,避免装到别的解释器里。
如果你用的是 pyenv,优先用这些命令来确认你到底在用哪个 Python:
bash
pyenv --version
pyenv versions
pyenv which python
python --version
python -c "import sys; print(sys.executable)"2) 虚拟环境(必须掌握)
在你要写脚本/工具的目录里创建并使用 venv:
bash
python -m venv .venv如果你希望在 pyenv 管理下更“绝对确定”用当前版本,也可以:
bash
pyenv exec python -m venv .venv激活环境:
bash
# PowerShell
.\.venv\Scripts\Activate.ps1
# cmd
.\.venv\Scripts\activate.bat安装依赖与导出:
bash
python -m pip install -U pip
python -m pip install requests
python -m pip freeze > requirements.txt原理补充:在虚拟环境激活后,
python -m pip ...是最不容易装错环境的一种方式。
3) VS Code 建议用法(短平快)
- 选择解释器:打开命令面板,选择
.venv对应的 Python。 - 运行脚本:直接 Run Python File。
- 调试脚本:用 Run and Debug(后面写 CLI 时更方便传参)。
4) 项目结构(脚本 vs 小工具包)
你会遇到两类脚本:
A) 一次性脚本(够用即可)
scripts/
report_md_stats.pyB) 可复用工具(推荐,从第 6 章开始会用到)
src/
md_tools/
__init__.py
cli.py
core.py原理补充:当脚本会被重复运行/定时任务调用/分享给别人时,就不要写成“散落的脚本文件”,而要做成一个可安装/可调用的小工具包。
练习(5 分钟)
新建 playground/hello.py,打印:当前工作目录、Python 版本、sys.path。
python
import sys
from pathlib import Path
print("cwd:", Path.cwd())
print("python:", sys.executable)
print("version:", sys.version)
print("sys.path[0]:", sys.path[0])常见问题(Windows)
- PowerShell 执行策略导致无法激活 venv:可临时执行
Set-ExecutionPolicy -Scope Process RemoteSigned。 - 路径问题:尽量用
pathlib.Path,不要手拼\\。
延伸阅读:如需版本管理,可参考 /python-study/pyenv。
