Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • python 学习指南
  • python 中的设计模式
  • module

  • tool

  • other

    • scrapy shell
    • xpath
    • ipython
    • pyproject_toml文件
      • pyproject.toml 的作用
      • 主要优点
      • link
    • python中的反射
    • 统计学数学概念整理
    • setuptools打包与安装
    • 日志分析工具
  • 《python》
  • other
Jacky
2024-09-15
目录

pyproject_toml文件

pyproject.toml 是一个用于定义 Python 项目的配置文件,包含构建系统、依赖项管理、项目元数据等信息。它最初是由 PEP 518 引入的,目的是简化项目的构建流程并提供标准化的配置方式

# pyproject.toml 的作用

主要用于以下几个方面:

  1. 定义构建系统:

它允许你指定项目的构建系统,如 setuptools、poetry、flit 等工具。通过 pyproject.toml,你可以清楚地定义项目需要使用的构建工具和相关依赖

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
1
2
3

其中:

  • requires: 指定构建项目所需的依赖包
  • build-backend: 指定构建项目时要使用的工具
  1. 依赖管理:

一些现代的依赖管理工具(如 poetry)也使用 pyproject.toml 来管理项目依赖和虚拟环境。相比于 requirements.txt,使用 pyproject.toml 更加灵活、结构化

例如,使用 poetry 时的依赖管理:

[tool.poetry]
name = "my_project"
version = "0.1.0"
description = "A sample Python project"
authors = ["Your Name <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.8"
requests = "^2.25.1"

[tool.poetry.dev-dependencies]
pytest = "^6.2.2"
1
2
3
4
5
6
7
8
9
10
11
12
  1. 配置项目元数据:
  • 它可以作为项目的元数据文件,包含项目的名称、版本、描述、作者信息等,类似于 setup.py 文件的作用
  • 如果你使用像 setuptools 这样的构建工具,这些元数据可以直接从 pyproject.toml 中读取
  1. 工具配置:

除了构建工具和依赖管理外,pyproject.toml 还可以用来配置各种开发工具。例如,格式化工具 black 或静态分析工具 mypy 等可以在 pyproject.toml 中进行配置,而不是在项目的其他配置文件中

例如,配置 black 格式化工具:

[tool.black]
line-length = 88
target-version = ['py38']
1
2
3

配置 mypy 静态类型检查:

[tool.mypy]
ignore_missing_imports = true
1
2

# 主要优点

  • 标准化配置: 不同工具(如构建工具、依赖管理、代码检查)可以在同一个文件中统一配置,减少了文件的分散
  • 兼容性: 随着 pyproject.toml 的标准化,越来越多的 Python 工具(如 black、mypy、tox、poetry 等)都开始支持并依赖于此文件
  • 可扩展性: 通过 pyproject.toml,项目可以更方便地引入不同的构建工具和配置项,而无需维护多个配置文件

# link

  • config case
    • aiogram-pyproject (opens new window)
上次更新: 2024/12/01, 17:09:08
ipython
python中的反射

← ipython python中的反射→

最近更新
01
npx 使用指南
10-12
02
cursor
09-28
03
inspect
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式