第一章、环境准备资源下载https://www.python.org/downloads/现场环境Centos7.8window10。下载python3.0稳定版wgethttps://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgztar-zxvfPython-3.7.12.tgzcdPython-3.7.12.tgz ./configure--prefix/usr/local/python3重新执行/configure--prefix/usr/local/python3 --enable-optimizations --enable-sharedmakemakeinstall重新编译/configure --prefix/usr/local/python3再次make#备份原来的python2.7文件mv/bin/python /bin/python2.7.5#修改受影响的yum文件vim/usr/bin/yum#修改为#!/usr/bin/python为#!/usr/bin/python2.7vim/usr/libexec/urlgrabber-ext-down //同上修改ln-s/usr/local/python3/bin/python3.7 /bin/python3ln-s/usr/local/python3/bin/pip3.7 /usr/bin/pip3 验证python3-V//报错如下 errorwhileloading shared libraries: libpython3.7m.so.1.0: cannotopenshared object file: No suchfileor directory有2种解决办法1编辑/etc/ld.so.conf将libpython3.7m.so.1.0的位置写入文件后执行ldconfig2软连接ln -s /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/local/lib/libpython3.7m.so.1.0然后ldconfig第二章、开发前项目基础2.1、Python项目规范下面是一个Python 生产级项目标准目录结构可据实际裁剪参考project_name/#也就是一个文件夹开始编写代码前首先得第一步├── .gitignore# Git 忽略配置├── .env# 环境变量不提交到 Git├── .env.example# 环境变量示例模板├── .python-version# Python 版本指定pyenv 使用├── README.md# 项目说明文档├── CHANGELOG.md# 变更日志├── LICENSE# 开源许可证│ ├── requirements.txt# 生产环境依赖├── requirements-dev.txt# 开发环境依赖├── requirements-test.txt# 测试环境依赖├── setup.py# 包安装配置支持 pip install -e .├── pyproject.toml# 现代 Python 项目配置PEP 517/518│ ├── Dockerfile# Docker 镜像构建├── docker-compose.yml# 本地开发服务编排├── docker-compose.prod.yml# 生产环境编排│ ├── src/# 源代码目录推荐 src 布局│ └── project_name/ │ ├── __init__.py# 包初始化可定义 __version__│ ├── __main__.py# 支持 python -m project_name 运行│ ├── main.py# 应用入口点│ │ │ ├── api/# API 路由层│ │ ├── __init__.py │ │ ├── v1/# API 版本控制│ │ │ ├── __init__.py │ │ │ ├── endpoints/ │ │ │ │ ├── users.py │ │ │ │ ├── items.py │ │ │ │ └── auth.py │ │ │ └── router.py │ │ └── deps.py# 依赖注入认证、权限等│ │ │ ├── core/# 核心配置与基础组件│ │ ├── __init__.py │ │ ├── config.py# 配置管理pydantic-settings│ │ ├── security.py# 安全相关JWT、密码哈希│ │ ├── exceptions.py# 自定义异常│ │ ├── logging.py# 日志配置│ │ └── constants.py# 常量定义│ │ │ ├── models/# 数据库模型层SQLAlchemy/Tortoise│ │ ├── __init__.py │ │ ├── user.py │ │ ├── item.py │ │ └── mixins.py# 通用模型混入时间戳、软删除等│ │ │ ├── schemas/# Pydantic 数据验证模式│ │ ├── __init__.py │ │ ├── user.py │ │ ├── item.py │ │ └── token.py │ │ │ ├── services/# 业务逻辑层│ │ ├── __init__.py │ │ ├── user_service.py │ │ └── item_service.py │ │ │ ├── repositories/# 数据访问层Repository 模式│ │ ├── __init__.py │ │ ├── base.py# 基础 Repository│ │ ├── user_repo.py │ │ └── item_repo.py │ │ │ ├── utils/# 通用工具函数│ │ ├── __init__.py │ │ ├── helpers.py │ │ ├── validators.py │ │ └── formatters.py │ │ │ ├── tasks/# 异步任务Celery/RQ│ │ ├── __init__.py │ │ ├── celery_app.py │ │ └── email_tasks.py │ │ │ └── tests/# 单元测试也可放在根目录 tests/│ ├── __init__.py │ ├── conftest.py │ ├── test_api/ │ ├── test_services/ │ └── test_utils/ │ ├── tests/# 集成测试目录若未放在 src 内│ ├── __init__.py │ ├── conftest.py# Pytest fixture 配置│ ├── integration/ │ ├── e2e/ │ └── fixtures/# 测试数据文件│ ├── scripts/# 运维与自动化脚本│ ├── migrate.sh# 数据库迁移│ ├── seed_data.py# 种子数据填充│ ├── backup_db.sh# 数据库备份│ └── deploy.sh# 部署脚本│ ├── alembic/# 数据库迁移Alembic│ ├── versions/ │ ├── env.py │ └── script.py.mako │ ├── logs/# 日志目录.gitignore 忽略│ └── .gitkeep │ ├── static/# 静态文件CSS、JS、图片│ ├── css/ │ ├── js/ │ └── images/ │ ├── templates/# 模板文件Jinja2、HTML│ ├── emails/ │ └── pages/ │ └── docs/# 项目文档├── api/# API 文档├── architecture/# 架构设计文档└── deployment/# 部署指南第三章、开发环境准备