全部文章

Python 开发环境

Python 安装、虚拟环境、包管理、常用库与代码片段

目录 23 节

Python 开发环境

这页更偏“Python 入门与常用工具总览”。如果你是第一次把 Python 用起来,优先搞清楚虚拟环境、依赖安装和常用库,不需要一开始就追求很复杂的工程化。

推荐学习顺序

  1. 先装 Python
  2. 会创建和切换虚拟环境
  3. 学会安装依赖与导出依赖
  4. 再接触 uv、Poetry 这类更现代的工作流

这页适合谁

  • 想开始写 Python 脚本
  • 需要处理 API、文件、JSON、自动化任务
  • 想先有一套能跑的环境,再慢慢升级工作流

安装

# Windows
winget install Python.Python.3.12
# 或
scoop install python
# macOS
brew install python

# Ubuntu
apt install python3 python3-pip python3-venv -y

虚拟环境

# 创建
python -m venv .venv

# 激活
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate

# 退出
deactivate

包管理

pip

pip install requests
pip install -r requirements.txt
pip freeze > requirements.txt
pip list --outdated
pip install --upgrade package

uv(推荐)

更快的 Python 包管理器。

# 安装
scoop install uv
# 或
pip install uv

# 使用
uv venv                    # 创建虚拟环境
uv pip install requests    # 安装包
uv pip compile requirements.in -o requirements.txt
uv run script.py           # 直接运行

Poetry

pip install poetry

poetry new myproject       # 新建项目
poetry init                # 在已有项目初始化
poetry add requests        # 添加依赖
poetry install             # 安装所有依赖
poetry shell               # 进入虚拟环境
poetry build               # 构建包

常用代码片段

HTTP 请求

import requests

# GET
resp = requests.get("https://api.example.com/data")
data = resp.json()

# POST
resp = requests.post("https://api.example.com/data", json={"key": "value"})

文件操作

from pathlib import Path

# 读写文件
content = Path("file.txt").read_text(encoding="utf-8")
Path("output.txt").write_text("hello", encoding="utf-8")

# 遍历目录
for f in Path(".").rglob("*.py"):
    print(f)

JSON 处理

import json

# 读取
with open("data.json", encoding="utf-8") as f:
    data = json.load(f)

# 写入
with open("out.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

异步编程

import asyncio
import aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            return await resp.json()

async def main():
    urls = ["https://api.example.com/1", "https://api.example.com/2"]
    tasks = [fetch(url) for url in urls]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

常用库

说明
requestsHTTP 客户端
FastAPI现代 Web 框架
Pydantic数据验证
Rich终端美化输出
ClickCLI 框架
Pillow图像处理

参考链接

常见使用场景

写自动化脚本

  • requests
  • pathlib
  • json

写 API 服务

  • FastAPI
  • Pydantic

做 CLI 工具

  • Click
  • Rich

常见问题

已经装了包,代码里还是 ModuleNotFoundError

大多数时候是包装到了错误的解释器或错误的虚拟环境里。先确认当前终端和编辑器用的是同一个环境。

该选 uv 还是 Poetry

  • 先求快和轻:uv
  • 做包管理、发布和完整项目元数据:Poetry

requirements.txt 还要不要保留

老项目通常要保留;新项目可以视团队习惯选择更现代的依赖描述方式。

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 如果你只是快速查资料,可先看目录和相关文档,再决定是否深入全文。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 想先建立认知,再决定是否深入实践的人
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 顺手记录真正对你有用的命令、链接和注意事项,避免重复搜索
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇PowerShell 实用技巧