第一章 阶段零:前置准备与思维建立
1 Python 安装与虚拟环境(venv / Conda)
1.1 Python 是什么?
Python 是一种高级、解释型、通用编程语言,由 Guido van Rossum 于 1991 年首次发布。它的设计哲学强调代码可读性和简洁语法(使用空格缩进来划分代码块),被称为"可执行的伪代码"。
核心特征:
- 动态类型:变量不需要声明类型,运行时自动推断
- 自动内存管理:有垃圾回收机制,无需手动管理内存
- 解释执行:代码由解释器逐行执行,便于快速原型开发
- 多范式支持:面向对象、函数式、过程式编程均可
- "batteries included":标准库功能丰富,开箱即用
1.2 Python 的优缺点
✅ 优点
| 方面 | 说明 |
|---|---|
| 低门槛易上手 | 语法接近英语,缩进强制可读性,适合初学者 |
| 开发效率极高 | 动态类型 + 丰富库支持,代码量通常是 Java/C++ 的 1/5 ~ 1/3 |
| 生态极其庞大 | PyPI 上有超过 50 万个包,几乎覆盖所有领域 |
| 跨平台 | Windows / macOS / Linux / 甚至嵌入式(MicroPython) |
| 胶水语言 | 可轻松调用 C / C++ / Rust / Fortran 库,适合性能关键模块 |
| 社区活跃 | 海量教程、Stack Overflow 问答、开源项目 |
| 就业市场需求大 | 数据科学、AI、后端、自动化等领域核心语言 |
❌ 缺点
| 方面 | 说明 |
|---|---|
| 执行速度相对慢 | 解释型语言,通常比 C / Rust / Go 慢 10~100 倍(但多数场景不明显) |
| 全局解释器锁(GIL) | 限制多线程 CPU 密集型任务的并行性(可用多进程绕过) |
| 运行时错误 | 动态类型导致类型错误在运行时才暴露(可用 type hints + mypy 缓解) |
| 移动端支持弱 | 几乎不用于 iOS / Android 原生开发 |
| 内存占用较高 | 相比 C/C++ 有更大内存开销 |
1.3 Python 的主要应用领域
| 领域 | 典型应用 | 代表库/框架 |
|---|---|---|
| 人工智能与机器学习 | 深度学习、自然语言处理、计算机视觉 | TensorFlow, PyTorch, Scikit-learn, Hugging Face |
| 数据科学与分析 | 数据处理、可视化、统计分析 | Pandas, NumPy, Matplotlib, Jupyter Notebook |
| Web 后端开发 | API 服务、网站后端、微服务 | Django, Flask, FastAPI, Tornado |
| 自动化与脚本 | 系统管理、爬虫、CI/CD 脚本 | Requests, BeautifulSoup, Selenium, Fabric |
| 科学计算 | 物理模拟、生物信息、工程计算 | SciPy, SymPy, Biopython |
| 量化交易 | 策略回测、实盘交易 | Zipline, vn.py, Backtrader |
| DevOps 与云基础设施 | 基础设施即代码、容器编排 | Ansible, SaltStack, OpenStack SDK |
| 教育 | 编程入门教学 | Turtle, Pygame, CodeSkulptor |
| 网络安全 | 渗透测试、工具开发 | Scapy, Impacket, Nmap 的 Python 封装 |
1.4 Python 安装(多操作系统)
1.4.1 安装前的注意事项
| 操作系统 | 注意事项 |
|---|---|
| Windows | • 安装时务必勾选 "Add Python to PATH"(否则命令行找不到 python 命令) • 建议选择 "Customize installation",将安装路径改为简短路径(如 C:\Python312) • 注意 32-bit 与 64-bit 版本选择(现代开发一律选 64-bit) • Windows Store 版本的 Python 有权限限制,不推荐使用 |
| macOS | • 系统自带 Python 2.7(已废弃),不要使用 • 推荐使用 Homebrew 安装:brew install python@3.12 • 或从 python.org 下载官方安装包 • 注意 Apple Silicon (M1/M2/M3) 与 Intel 芯片的版本区别 |
| Linux | • 多数发行版预装 Python 3,但版本可能较旧 • 不要卸载系统自带的 Python (系统工具依赖它) • 使用 apt / yum / dnf / pacman 包管理器安装或源码编译 • 推荐使用 deadsnakes PPA(Ubuntu)获取新版 |
1.4.2 Windows 安装步骤
方式一:官方安装包(推荐)
-
点击黄色按钮下载最新版(如 Python 3.12.x)
-
运行安装程序
-
勾选最下方
Add Python to PATH -
点击
Install Now(或选择Customize installation自定义路径) -
等待安装完成
-
打开
命令提示符 (cmd)或PowerShell,输入:cmdpython --version显示
Python 3.12.x即成功
方式二:通过 winget(Windows 包管理器)
powershell
winget install Python.Python.3.12
1.4.3 macOS 安装步骤
方式一:Homebrew(强烈推荐)
bash
# 如未安装 Homebrew,先安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Python
brew install python@3.12
# 验证
python3 --version
方式二:官方安装包
- 访问 python.org/downloads
- 下载 macOS 64-bit universal2 installer
- 双击 .pkg 文件,按提示安装
- 终端验证:
python3 --version
注意事项:
- macOS 系统命令
python默认指向 Python 2.7,请始终使用python3和pip3 - 安装后建议配置别名:
alias python=python3(写入~/.zshrc或~/.bash_profile)
1.4.4 Linux 安装步骤(以 Ubuntu/Debian 为例)
方式一:apt 包管理器(版本可能旧)
bash
sudo apt update
sudo apt install python3 python3-pip python3-venv
方式二:deadsnakes PPA(获取最新版)
bash
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev
# 设置优先级(可选)
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
方式三:源码编译(完全控制)
bash
# 安装编译依赖
sudo apt install build-essential libssl-dev zlib1g-dev libncurses5-dev \
libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev \
libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev
# 下载源码
wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz
tar -xf Python-3.12.2.tar.xz
cd Python-3.12.2
# 配置、编译、安装
./configure --enable-optimizations --prefix=/usr/local
make -j $(nproc)
sudo make altinstall # 使用 altinstall 避免覆盖系统 python3
验证:
bash
python3.12 --version
1.5 虚拟环境(venv 与 Conda)
1.5.1 为什么要使用虚拟环境?
问题场景:
- 项目 A 需要 Django 3.2
- 项目 B 需要 Django 4.2
- 系统全局安装的 Django 只能有一个版本 → 冲突
虚拟环境的核心价值:
| 价值 | 说明 |
|---|---|
| 隔离依赖 | 每个项目有自己的 Python 解释器和包,互不干扰 |
| 版本管理 | 同一台机器可同时运行不同版本的库 |
| 可复现性 | requirements.txt 或 environment.yml 可精确重建环境 |
| 权限安全 | 不需要管理员权限就能安装包 |
| 保持全局干净 | 系统 Python 只保留基础工具,避免污染 |
1.5.2 虚拟环境的优缺点
✅ 优点
- 环境隔离彻底,避免依赖冲突
- 方便项目迁移和团队协作
- 可随意删除重建,不影响其他项目
- 支持导出依赖清单
❌ 缺点
- 占用额外磁盘空间(每个环境复制一份 Python 二进制和库)
- 需要记住激活/停用命令
- 对环境的管理需要额外学习成本
- 跨环境切换有轻微心智负担
1.5.3 venv vs Conda:核心区别
| 维度 | venv | Conda |
|---|---|---|
| 所属 | Python 内置(3.3+) | 第三方(Anaconda/Miniconda) |
| 管理范围 | 仅 Python 包 | Python 包 + 非 Python 库(C/C++ 依赖如 CUDA、OpenCV) |
| 跨语言支持 | 仅 Python | 支持 R、Ruby、Lua、Java 等 |
| 环境位置 | 通常在项目目录内 | 集中在 ~/miniconda3/envs/ |
| 包来源 | PyPI(pip) | Conda 频道(defaults/conda-forge) + PyPI |
| 二进制依赖 | 需要系统预装(如 libjpeg) |
自动安装 |
| 激活方式 | source venv/bin/activate |
conda activate env_name |
| 适用场景 | 纯 Python 项目、轻量级 | 数据科学、机器学习、需要非 Python 库的项目 |
| 磁盘占用 | 较小(~10-50 MB) | 较大(~500 MB - 2 GB) |
| Windows 支持 | 良好(venv\Scripts\activate) |
优秀(与 PowerShell/cmd 集成) |
选择建议:
- 纯 Python Web 开发 / 脚本项目 →
venv(轻量、够用) - 数据科学 / 机器学习 / 深度学习 →
Conda(自动处理 CUDA、numpy 等二进制依赖) - 团队协作且环境复杂 →
Conda(跨平台一致性更好)
1.6 venv 虚拟环境使用详解
1.6.1 创建虚拟环境
bash
# 语法
python -m venv <环境名称>
# 示例:在当前目录下创建名为 myproject_env 的环境
python -m venv myproject_env
# 指定 Python 解释器版本(需要该版本已安装)
python3.10 -m venv myproject_env
1.6.2 激活虚拟环境
| 操作系统 | 激活命令 |
|---|---|
| macOS / Linux | source myproject_env/bin/activate |
| Windows (cmd) | myproject_env\Scripts\activate.bat |
| Windows (PowerShell) | myproject_env\Scripts\Activate.ps1 |
激活后,命令行提示符会显示环境名称:
bash
(myproject_env) user@host:~$
1.6.3 安装包
bash
# 激活环境后
pip install django
pip install requests==2.31.0
pip install -r requirements.txt
1.6.4 导出依赖
bash
# 生成依赖清单
pip freeze > requirements.txt
# 查看已安装包
pip list
1.6.5 退出虚拟环境
bash
deactivate
1.6.6 删除虚拟环境
bash
# 直接删除目录即可
rm -rf myproject_env # macOS/Linux
rmdir /s myproject_env # Windows
1.7 Conda 虚拟环境使用详解
1.7.1 安装 Conda(Miniconda 推荐)
Miniconda 是 Conda 的精简版,仅包含包管理器和 Python。
Windows / macOS / Linux 通用安装:
- 访问 docs.conda.io/en/latest/miniconda.html
- 下载对应系统的安装包
- 运行安装程序(建议勾选"Add Conda to PATH")
Linux / macOS 命令行安装:
bash
# 下载 Miniconda(Linux x86_64 示例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
# 按提示操作,同意许可证,选择安装路径(默认 ~/miniconda3)
# 安装完成后重启终端或执行 source ~/.bashrc
验证安装:
bash
conda --version
1.7.2 Conda 基础命令
bash
# 查看环境列表
conda env list
# 查看当前环境中的包
conda list
# 搜索包
conda search numpy
# 添加频道(推荐 conda-forge)
conda config --add channels conda-forge
conda config --set channel_priority flexible
1.7.3 创建虚拟环境
bash
# 基本语法
conda create -n <环境名> python=<版本>
# 示例:创建名为 ai_env 的环境,Python 3.10
conda create -n ai_env python=3.10
# 创建时同时安装包
conda create -n data_env python=3.11 numpy pandas matplotlib
# 从 environment.yml 文件创建
conda env create -f environment.yml
1.7.4 激活 / 退出环境
bash
# 激活环境
conda activate ai_env
# 退出当前环境
conda deactivate
1.7.5 管理包
bash
# 激活环境后
conda install numpy pandas scikit-learn
conda install -c conda-forge pytorch # 从特定频道安装
# 使用 pip 安装(当 conda 没有某包时)
pip install some-package
# 更新包
conda update numpy
# 卸载包
conda remove numpy
1.7.6 导出环境
bash
# 导出精确环境(包含精确版本号和构建哈希)
conda env export > environment.yml
# 导出仅显式安装的包(更便携)
conda env export --from-history > environment.yml
environment.yml 示例:
yaml
name: ai_env
dependencies:
- python=3.10
- numpy=1.24.3
- pandas=2.0.1
- pip
- pip:
- torch==2.0.1
- transformers==4.30.0
1.7.7 克隆环境
bash
conda create -n new_env --clone existing_env
1.7.8 删除环境
bash
conda env remove -n ai_env
1.8 最佳实践与工作流建议
项目结构示例
my_ai_project/
├── .gitignore
├── README.md
├── requirements.txt # 如果用 venv
├── environment.yml # 如果用 conda
├── data/
├── notebooks/
├── src/
│ ├── __init__.py
│ └── main.py
└── tests/
推荐工作流(venv)
bash
# 1. 创建项目目录
mkdir my_project && cd my_project
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活环境
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
# 4. 升级 pip
pip install --upgrade pip
# 5. 安装依赖
pip install -r requirements.txt
# 6. 开发...
# 7. 更新依赖
pip freeze > requirements.txt
# 8. 退出
deactivate
推荐工作流(Conda)
bash
# 1. 创建环境
conda create -n myproject python=3.10
# 2. 激活
conda activate myproject
# 3. 安装包
conda install numpy pandas jupyter
# 4. 开发...
# 5. 导出环境
conda env export --from-history > environment.yml
# 6. 退出
conda deactivate
# 7. 在其他机器上重建
conda env create -f environment.yml
常见问题排查
| 问题 | 解决方案 |
|---|---|
python: command not found |
检查 PATH,重新安装并勾选"Add to PATH" |
pip install 权限错误 |
未激活虚拟环境,或使用 --user 标志 |
| conda 命令不存在 | 未初始化 conda,运行 conda init 并重启终端 |
| 激活环境后仍用系统 Python | 检查激活脚本是否执行成功,用 which python 验证 |
| 虚拟环境跨操作系统不兼容 | 不要跨 OS 复制 venv 目录,用 requirements.txt 重建 |
1.9 本章小结
- Python 是一门易学、生态强大的语言,在 AI/数据科学/Web 等领域占据主导地位
- 安装时根据操作系统选择合适方式,务必注意 PATH 配置
- 虚拟环境是项目隔离的必需品,初学者应养成"每个项目一个虚拟环境"的习惯
- venv 适合纯 Python 项目,轻量简单
- Conda 适合数据科学/ML 项目,自动处理二进制依赖
- 记住三个核心命令:创建 → 激活 → 安装包
下一步: 在搭建好的 Python 环境中,我们将在下一节学习 Python 基础语法和常用数据结构。