想学学python搞ai应用开发,但是好多教程都是从“hello world" 开始,太痛苦了。因此,整理了这份文档。面向有编程基础的开发者,快速掌握 Python 开发全貌
一、环境管理
Python 版本管理
macOS / Linux(pyenv)
- # 安装 pyenv
- curl https://pyenv.run | bash
- # 常用命令
- pyenv install 3.12.0 # 安装指定版本
- pyenv global 3.12.0 # 设置全局版本
- pyenv local 3.11.0 # 设置当前目录版本(生成 .python-version)
- pyenv versions # 列出所有已安装版本
- pyenv which python # 查看当前 python 路径
复制代码 Windows(PowerShell)
- # 方式一:winget 直接安装(最简单)
- # 设置国内源加速:winget source add winget https://mirrors.cernet.edu.cn/winget-source --trust-level trusted
- winget search Python.Python # 搜索可用版本
- winget install Python.Python.3.12 # 安装
- winget upgrade Python.Python.3.12 # 升级
- # 验证(Windows 用 python,不是 python3)
- python --version
- pip --version
复制代码⚠️ 使用官网 .exe 安装包时,务必勾选 Add Python to PATH,否则终端找不到 python 命令。
- # 方式二:pyenv-win(推荐,支持多版本切换)
- Invoke-WebRequest -UseBasicParsing `
- -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" `
- -OutFile "$HOME\install-pyenv-win.ps1"
- & "$HOME\install-pyenv-win.ps1"
- # 重启 PowerShell 后,命令与 Unix pyenv 完全相同
- # 配置环境变量,使用加速源。环境变量名:PYTHON_BUILD_MIRROR_URL,值:https://registry.npmmirror.com/-/binary/python
- pyenv install 3.12.0
- pyenv global 3.12.0
- pyenv local 3.11.0
- pyenv versions
- pyenv rehash # 安装新版本后刷新 shims
- # 如果 python 命令找不到,检查 PATH
- where.exe python
- $env:PATH -split ";"
复制代码 虚拟环境
macOS / Linux
- python -m venv .venv # 创建
- source .venv/bin/activate # 激活
- deactivate # 退出
复制代码 Windows(PowerShell)
- # 创建(与 Unix 相同)
- python -m venv .venv
- # 激活 —— PowerShell 专用,注意与 bash 不同!
- .\.venv\Scripts\Activate.ps1
- # 激活后提示符出现 (.venv) 前缀
- # (.venv) PS C:\myproject>
- # 退出
- deactivate
- # 删除虚拟环境
- Remove-Item -Recurse -Force .venv
复制代码⚠️ 首次激活若报"无法加载文件"执行策略错误,运行一次即可解决:- Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
复制代码 - :: CMD(命令提示符)激活方式
- .venv\Scripts\activate.bat
复制代码- # Git Bash 激活方式
- source .venv/Scripts/activate
复制代码 conda(科学计算场景,跨平台)
- conda create -n myenv python=3.12
- conda activate myenv
- conda deactivate
复制代码 现代工具链(推荐 uv)
- # uv:极速包管理器,兼容 pip 语法,Rust 编写
- pip install uv
- uv venv # 创建虚拟环境
- uv pip install requests # 安装包
- uv pip sync requirements.txt # 同步依赖
复制代码 二、包管理
pip 基础命令
- pip install requests # 安装
- pip install requests==2.31.0 # 安装指定版本
- pip install "requests>=2.28,<3" # 版本范围
- pip uninstall requests # 卸载
- pip list # 列出已安装包
- pip show requests # 查看包信息
- pip freeze > requirements.txt # 导出依赖
- pip install -r requirements.txt # 从文件安装
- pip install -e . # 以开发模式安装当前包
- pip install --upgrade requests # 升级
复制代码 三、项目结构
标准项目结构
- requests==2.31.0
- numpy>=1.24.0
- pandas
- fastapi[all]>=0.100.0
复制代码 简单脚本结构
- [build-system]
- requires = ["hatchling"]
- build-backend = "hatchling.build"
- [project]
- name = "my-project"
- version = "0.1.0"
- description = "My awesome project"
- readme = "README.md"
- requires-python = ">=3.10"
- dependencies = [
- "requests>=2.28",
- "fastapi>=0.100",
- ]
- [project.optional-dependencies]
- dev = [
- "pytest>=7.0",
- "black",
- "mypy",
- ]
- [project.scripts]
- my-cli = "my_project.cli:main" # 命令行入口
复制代码 四、程序入口
- my_project/
- ├── .venv/ # 虚拟环境(不提交 git)
- ├── .github/
- │ └── workflows/ # CI/CD 配置
- ├── src/
- │ └── my_project/ # 源代码(src layout,推荐)
- │ ├── __init__.py
- │ ├── main.py # 主程序
- │ ├── config.py # 配置
- │ ├── models/
- │ │ ├── __init__.py
- │ │ └── user.py
- │ ├── services/
- │ │ ├── __init__.py
- │ │ └── user_service.py
- │ └── utils/
- │ ├── __init__.py
- │ └── helpers.py
- ├── tests/
- │ ├── __init__.py
- │ ├── conftest.py # pytest 配置/fixtures
- │ ├── test_main.py
- │ └── services/
- │ └── test_user_service.py
- ├── docs/
- ├── scripts/ # 工具脚本
- ├── .env # 环境变量(不提交 git)
- ├── .env.example # 环境变量示例(提交 git)
- ├── .gitignore
- ├── pyproject.toml # 项目配置(现代标准)
- ├── requirements.txt # 依赖(可选)
- └── README.md
复制代码- simple_app/
- ├── app.py
- ├── requirements.txt
- └── .env
复制代码 命令行参数
- # main.py
- def main():
- print("Hello, Python!")
- # 关键:判断是否作为主程序运行(而非被导入)
- if __name__ == "__main__":
- main()
复制代码 五、基础语法
变量与赋值
- # 运行方式
- python main.py
- python -m my_project.main # 以模块方式运行
复制代码 注释
- import argparse
- def main():
- parser = argparse.ArgumentParser(description="My tool")
- parser.add_argument("name", help="Your name")
- parser.add_argument("-v", "--verbose", action="store_true")
- parser.add_argument("--count", type=int, default=1)
- args = parser.parse_args()
- for _ in range(args.count):
- print(f"Hello, {args.name}!")
- if __name__ == "__main__":
- main()
复制代码 基本运算
- # 变量赋值示例
- x = 10 # 动态类型,可以随时改变类型
- print(x) # 输出 10
- x = "Hello, World!" # 现在 x 是一个字符串
- print(x) # 输出 "Hello, World!"
- x, y, z = 20, 30, 40 # 多变量赋值
- print(x, y, z) # 输出 20 30 40
- a = b = c = 50 # 链式赋值
- print(a, b, c) # 输出 50 50 50
- x, *rest = [1, 2, 3, 4, 5] # 解包赋值,rest 将包含剩余的值
- print(x) # 输出 1
- print(rest) # 输出 [2, 3, 4, 5]
- _, second, *_ = [10, 20, 30, 40] # 使用 _ 忽略不需要的值
- print(second) # 输出 20
- # 命名规范
- my_variable = 100 # 变量名应该使用小写字母和下划线分隔(snake_case)
- MY_CONSTANT = 3.14 # 常量名应该使用大写字母和下划线分隔(UPPER_SNAKE_CASE)
- MyClass = "This is a class name" # 类名应该使用大写字母开头的驼峰命名法(PascalCase)
- _private_variable = "This is a private variable" # 私有变量通常以单下划线开头
- __dunder_variable__ = "This is a dunder variable" # 双下划线变量通常用于特殊用途,如 __init__ 或 __str__
复制代码 六、数据类型
数字
- # 单行注释
- """
- 多行注释示例
- 这是一个多行注释的示例,可以用于函数说明文档或者代码块的解释。
- """
- def example_function(param1, param2) -> str:
- """ 函数说明文档
- Args:
- param1 (int): 这是第一个参数的说明
- param2 (str): 这是第二个参数的说明
- Returns:
- str: 这是函数返回值的说明
- """
- pass # 这里是函数体的占位符,实际代码应该在这里编写
复制代码 字符串
[code]s = "hello"s = 'hello's = """多行字符串"""# f-string(推荐,Python 3.6+)name = "Alice"print(f"Hello, {name}!")print(f"2 + 3 = {2 + 3}")print(f"{3.14159:.2f}") # 格式化浮点数, 保留两位小数print(f"{{}}") # 输出花括号print(f"{1000000:,}") # 数字千位分隔符, 1,000,000print(f"{'Alice':>10}") # 右对齐, Aliceprint(f"{'Bob': |