Python项目集

一个包含100个Python项目的仓库,涵盖核心语言练习、API开发、模型上下文协议及AI代理与自动化等多个领域,适合动手实践和学习。

  • by roberjacobo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 roberjacobo/100-python-projects

使用说明

🐍 100个Python项目

包含以下内容的存储库 100个Python项目 用于实践练习。
包括跨多个域的示例:

  • 普通Python (核心语言练习)
  • API开发
  • MCP(模型上下文协议)
  • 人工智能代理和自动化

📋 项目列表

  1. 你好,世界 -Python基础介绍
  2. 计算器 -用户输入的基本算术运算
  3. 点 -基于二维坐标点的面向对象编程
  4. 库存 -CSV文件操作用于产品管理
  5. 快速API -API开发(正在进行中)

⚙️ 设置

使用创建虚拟环境 紫外线:

uv venv --python 3.11
source .venv/bin/activate  # Linux/macOS

依赖管理

依赖关系在中进行管理 pyproject.toml.常用命令:

安装所有依赖项 (新机器上的新设置):

uv sync

添加新的依赖关系:

uv add package-name
uv add "fastapi[standard]"  # with extras
uv pip install <package>  # works too

删除依赖项:

uv remove package-name

更新依赖关系:

uv lock --upgrade
uv sync

🧹 清洁 __pycache__ 文件夹

Python创建 __pycache__/ 包含已编译字节码的文件夹(.pyc 文件)。它们是无害的(并且已经被git忽略了),但在学习过程中会使项目树变得混乱。

一次性清理: clean-pycache.sh

该仓库包含一个助手脚本,用于删除每个 __pycache__ 递归文件夹:

./clean-pycache.sh

它是如何工作的: 该脚本是一个Bash包装器(因此它从Git Bash运行),它调用PowerShell来执行实际工作:

Get-ChildItem -Recurse -Directory -Filter '__pycache__' | Remove-Item -Recurse -Force
  • Get-ChildItem -Recurse -Directory -Filter '__pycache__' 查找所有名为的目录 __pycache__ 在当前文件夹下。
  • Remove-Item -Recurse -Force 删除每个及其内容。

永久选项:禁用字节码缓存(仅限项目)

该项目的venv包含 sitecustomize.py Python在启动时会自动导入,所以 __pycache__ 永远不会创建文件夹,但只有在运行此venv时才会创建,而不会影响机器上其他任何地方的Python:

# .venv/Lib/site-packages/sitecustomize.py
import sys
sys.dont_write_bytecode = True

这适用于激活的静脉, uv run,IDE指出 .venv. 注: 如果venv被重新创建(uv venv),文件将被擦除,必须重新创建。

可供参考的替代方案: python -B 禁用单次运行的缓存,并设置 PYTHONDONTWRITEBYTECODE=1 环境变量在机器范围内禁用它。在所有情况下,唯一的权衡是导入速度稍慢,因为Python在每次运行时都会重新编译模块——这与小型学习项目无关。

运行FastAPI项目

具有自动重新加载功能的开发服务器:

fastapi dev 05.FastAPI/main.py

生产服务器:

fastapi run 05.FastAPI/main.py

直接使用玉米替代品:

uvicorn 05.FastAPI.main:app --reload  # development
uvicorn 05.FastAPI.main:app           # production

访问交互式文档:

  • Swagger用户界面:http://localhost:8000/docs
  • 重新记录:http://localhost:8000/redoc