Python 项目模板使用教程
1. 项目的目录结构及介绍
python-package-template/
├── devcontainer/
├── github/
│ └── workflows/
├── vscode/
├── docs/
├── src/
│ └── your_package/
├── tests/
├── .gitignore
├── .pre-commit-config.yaml
├── .pypirc
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SECURITY.md
├── SUPPORT.md
├── pyproject.toml
- devcontainer/: 包含开发容器配置文件。
- github/workflows/: 包含GitHub Actions工作流配置文件。
- vscode/: 包含Visual Studio Code配置文件。
- docs/: 包含项目文档。
- src/your_package/: 包含项目的主要代码。
- tests/: 包含测试代码。
- .gitignore: 指定Git忽略的文件和目录。
- .pre-commit-config.yaml: 预提交钩子配置文件。
- .pypirc: PyPI配置文件。
- CODE_OF_CONDUCT.md: 行为准则。
- LICENSE: 许可证文件。
- README.md: 项目说明文档。
- SECURITY.md: 安全政策文档。
- SUPPORT.md: 支持文档。
- pyproject.toml: 项目配置文件。
2. 项目的启动文件介绍
项目的主要启动文件位于 src/your_package/
目录下。通常,这个目录会包含一个 __init__.py
文件和一个或多个模块文件。例如:
src/
└── your_package/
├── __init__.py
├── main.py
└── utils.py
- init.py: 使目录成为一个Python包。
- main.py: 包含项目的入口函数或主逻辑。
- utils.py: 包含一些辅助函数或工具类。
3. 项目的配置文件介绍
- pyproject.toml: 这是项目的主要配置文件,遵循PEP 621标准。它包含了项目的基本信息、依赖、构建系统等配置。
[build-system]
requires = ["flit_core>=3.2"]
build-backend = "flit_core.buildapi"
[project]
name = "your_package"
version = "0.1.0"
description = "A short description of the project"
authors = [
{name = "Your Name", email = "your.email@example.com"}
]
dependencies = [
"requests>=2.25.1",
"numpy>=1.19.5"
]
- .pre-commit-config.yaml: 预提交钩子配置文件,用于自动化代码格式化、检查等。
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- .gitignore: 指定Git忽略的文件和目录,避免将不必要的文件提交到版本控制系统中。
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.