强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

02 - 安装与环境配置

第 02 章:安装与环境配置

搭建 Python 开发环境,掌握版本管理和项目结构。


2.1 Python 安装

2.1.1 各平台安装方式

Linux(Ubuntu/Debian)

# Ubuntu 通常预装 Python 3,检查版本
$ python3 --version

# 安装 Python 3.12
$ sudo apt update
$ sudo apt install python3.12 python3.12-venv python3.12-dev

# 安装 pip
$ sudo apt install python3-pip

macOS

# 使用 Homebrew(推荐)
$ brew install [email protected]

# macOS 自带的 Python 2 已移除,注意区分
$ python3 --version

Windows

  1. 访问 https://www.python.org/downloads/
  2. 下载安装包,勾选 “Add Python to PATH”
  3. 验证安装:
> python --version
> pip --version

2.1.2 安装验证

# 检查 Python 和 pip 版本
$ python3 --version
Python 3.12.4

$ pip3 --version
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

# 检查 Python 路径
$ which python3
/usr/bin/python3

2.2 使用 pyenv 管理多版本

2.2.1 安装 pyenv

# macOS
$ brew install pyenv

# Linux(使用官方安装脚本)
$ curl https://pyenv.run | bash

配置 shell 环境(以 bash 为例,zsh 使用 .zshrc):

# ~/.bashrc 或 ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

2.2.2 常用命令

命令说明
pyenv install --list查看可安装版本
pyenv install 3.12.4安装指定版本
pyenv versions查看已安装版本
pyenv global 3.12.4设置全局默认版本
pyenv local 3.11.9为当前目录设置版本
pyenv shell 3.10.14为当前 shell 设置版本
# 安装 Python 3.12
$ pyenv install 3.12.4

# 设置全局版本
$ pyenv global 3.12.4

# 验证
$ python --version
Python 3.12.4

2.3 pip 包管理

2.3.1 基本用法

# 安装包
$ pip install requests

# 安装指定版本
$ pip install requests==2.31.0

# 升级包
$ pip install --upgrade requests

# 卸载包
$ pip uninstall requests

# 查看已安装的包
$ pip list

# 查看包信息
$ pip show requests

# 导出依赖
$ pip freeze > requirements.txt

# 从文件安装依赖
$ pip install -r requirements.txt

2.3.2 配置国内镜像源

临时使用

$ pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

永久配置(推荐):

# Linux/macOS: ~/.pip/pip.conf
# Windows: %APPDATA%\pip\pip.ini

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

2.3.3 常用镜像源

名称地址
清华大学https://pypi.tuna.tsinghua.edu.cn/simple
阿里云https://mirrors.aliyun.com/pypi/simple
中科大https://pypi.mirrors.ustc.edu.cn/simple
豆瓣https://pypi.douban.com/simple

2.4 虚拟环境

2.4.1 为什么需要虚拟环境?

不同项目可能依赖不同版本的同一包。虚拟环境隔离项目依赖,避免冲突。

全局 Python
├── requests==2.28.0  ← 项目 A 需要
└── requests==2.31.0  ← 项目 B 需要  → 冲突!

使用虚拟环境:
项目 A → venv A → requests==2.28.0
项目 B → venv B → requests==2.31.0

2.4.2 venv(标准库)

# 创建虚拟环境
$ python3 -m venv .venv

# 激活(Linux/macOS)
$ source .venv/bin/activate

# 激活(Windows)
> .venv\Scripts\activate

# 确认使用的是虚拟环境中的 Python
(.venv) $ which python
/home/user/project/.venv/bin/python

# 退出虚拟环境
(.venv) $ deactivate

2.4.3 virtualenv

# 安装
$ pip install virtualenv

# 创建(比 venv 更快,支持更多特性)
$ virtualenv .venv

# 指定 Python 版本
$ virtualenv .venv --python=python3.12

2.4.4 Poetry(现代方案)

# 安装 Poetry
$ curl -sSL https://install.python-poetry.org | python3 -

# 创建新项目
$ poetry new myproject

# 在已有项目中初始化
$ poetry init

# 安装依赖
$ poetry add requests
$ poetry add --group dev pytest

# 运行命令
$ poetry run python main.py
$ poetry run pytest

# 激活虚拟环境
$ poetry shell

2.4.5 uv(极速方案)

# 安装 uv(比 pip 快 10–100 倍)
$ curl -LsSf https://astral.sh/uv/install.sh | sh

# 创建虚拟环境
$ uv venv

# 安装包
$ uv pip install requests

# 从 requirements.txt 安装
$ uv pip install -r requirements.txt

2.4.6 方案对比

工具速度锁文件项目管理推荐场景
venv简单项目
virtualenv需要更多选项
Poetry库开发
pdm遵循 PEP 标准
uv极快全场景推荐

2.5 IDE 配置

2.5.1 VS Code(推荐)

  1. 安装 VS Code:https://code.visualstudio.com/
  2. 安装 Python 扩展:ms-python.python
  3. 配置解释器:Ctrl+Shift+PPython: Select Interpreter → 选择虚拟环境

推荐扩展:

扩展说明
Python基础 Python 支持
Pylance类型检查、自动补全
Ruff代码格式化和 lint
Python Debugger调试支持
JupyterNotebook 支持

settings.json 推荐配置:

{
    "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
    "python.terminal.activateEnvironment": true,
    "[python]": {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "charliermarsh.ruff",
        "editor.codeActionsOnSave": {
            "source.fixAll.ruff": "explicit",
            "source.organizeImports.ruff": "explicit"
        }
    },
    "python.analysis.typeCheckingMode": "basic"
}

2.5.2 PyCharm

  • Community 版:免费,适合纯 Python 开发
  • Professional 版:付费,支持 Web 框架、数据库工具
  • 自带虚拟环境管理、调试器、数据库工具

2.5.3 其他选择

IDE/编辑器特点
Neovim + LSP高效键盘操作
Jupyter Lab交互式数据分析
Cursor / WindsurfAI 辅助编码

2.6 项目结构

2.6.1 标准项目布局

myproject/
├── .venv/                  # 虚拟环境(不纳入版本控制)
├── src/
│   └── myproject/
│       ├── __init__.py     # 包初始化
│       ├── main.py         # 程序入口
│       ├── models.py       # 数据模型
│       └── utils.py        # 工具函数
├── tests/
│   ├── __init__.py
│   ├── test_main.py
│   └── test_models.py
├── docs/                   # 文档
├── pyproject.toml          # 项目配置(PEP 621)
├── README.md               # 项目说明
├── .gitignore              # Git 忽略规则
├── .env                    # 环境变量(不纳入版本控制)
└── Makefile                # 常用命令

2.6.2 .gitignore 模板

# 虚拟环境
.venv/
venv/

# Python 缓存
__pycache__/
*.py[cod]
*.pyo
*.egg-info/
dist/
build/

# IDE
.vscode/
.idea/

# 环境变量
.env

# 系统文件
.DS_Store
Thumbs.db

2.6.3 pyproject.toml 基本模板

[project]
name = "myproject"
version = "0.1.0"
description = "My Python project"
requires-python = ">=3.11"
dependencies = [
    "requests>=2.31.0",
    "pydantic>=2.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=8.0",
    "ruff>=0.4",
    "mypy>=1.10",
]

[tool.ruff]
line-length = 88
target-version = "py311"

[tool.ruff.lint]
select = ["E", "F", "I", "N", "UP", "B"]

[tool.mypy]
python_version = "3.11"
strict = true

2.6.4 Makefile

.PHONY: install test lint format run

install:
	pip install -e ".[dev]"

test:
	pytest tests/ -v

lint:
	ruff check src/ tests/

format:
	ruff format src/ tests/

run:
	python -m myproject.main

2.7 注意事项

🔴 注意

  • 不要使用系统自带的 Python 作为开发环境,使用 pyenv 或虚拟环境
  • 永远不要用 sudo pip install,这会污染系统 Python
  • requirements.txt 要锁定版本号,避免不同环境行为不一致
  • 不要将 .venv/ 目录提交到 Git

💡 提示

  • 使用 pyenv 管理多个 Python 版本
  • 每个项目使用独立的虚拟环境
  • 使用 uv 替代 pip 可以显著加速依赖安装
  • VS Code + Ruff + Pylance 是轻量高效的开发组合

📌 业务场景: 团队协作时,统一项目结构和依赖管理至关重要:

  1. 使用 pyproject.toml 声明所有依赖
  2. 使用 poetry.lockuv.lock 锁定版本
  3. 新成员只需 poetry install 即可获得一致的开发环境
  4. CI/CD 中使用相同配置构建和测试

2.8 扩展阅读