关于 pyproject-config
面向使用 setuptools、Ruff 和 pytest 的 Python 项目配置模板,涵盖 src/ 包布局、可编辑安装及打包和测试设置。
主要功能
- 01setuptools 构建配置
- 02src/ 包布局
- 03Ruff 检查设置
- 04pytest 测试发现
- 05控制台脚本配置
适用场景
- 01搭建采用 src/ 布局的 Python 包
- 02配置代码检查和 pytest
- 03添加项目命令行入口
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ brojonat/ llmsrules --skill pyproject-config安装后在 Claude Code 中输入/pyproject-config确认已加载。
详细介绍
pyproject.toml 配置
使用 setuptools、ruff 和 pytest 的 Python 项目标准配置。
控制台脚本
[project.scripts]
my-tool = "your_package.cli:main"
构建系统(src 布局)
[build-system]
requires = ["setuptools>=68.0.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]
这样即可通过 uv pip install -e . 使用 src/ 布局进行可编辑安装。
Ruff
[tool.ruff]
target-version = "py313"
line-length = 100
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = ["E203", "W503"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
Pytest
[tool.pytest.ini_options]
python_files = ["test_*.py", "*_test.py", "*_tests.py"]
项目布局
.
pyproject.toml # project metadata, deps, tooling
Makefile # common tasks (run, lint, test, build)
.env.server # server env vars
src/ # application/CLI package (editable install)
cli.py # Click CLI entrypoint
server/ # FastAPI app
main.py # ASGI entrypoint
templates/ # Jinja2 templates
static/ # static assets
data/ # datasets and outputs
plots/ # generated figures
为软件包保留 src/ 布局,以便顺利进行可编辑安装。在本地开发时使用 .env.server 和 .env.client,并在代码旁放置 .env.example 文件。
评论
支持 Markdown