You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用pip搭配pyproject.toml替代setup.py?

用pip搭配pyproject.toml替代setup.py的方案

完全可以用原生pip配合pyproject.toml完成项目配置,不需要引入poetry这类新工具。pip从21.0版本开始就支持PEP 621标准的pyproject.toml文件,完全兼容你现有的pip工作流。

核心配置文件示例

下面是覆盖大多数常见场景的pyproject.toml示例,对应原来setup.py的核心功能:

[build-system]
# 指定构建所需的依赖和后端,用pip原生支持的setuptools即可
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
# 项目基本信息
name = "your-project"
version = "0.1.0"
authors = [
  { name="Your Team", email="team@your-company.com" }
]
description = "项目的简短描述"
readme = "README.md"  # 关联项目说明文档
requires-python = ">=3.8"  # 最低Python版本要求
classifiers = [
  "Programming Language :: Python :: 3",
  "License :: OSI Approved :: MIT License",
  "Operating System :: OS Independent",
]

# 生产环境依赖,对应setup.py的install_requires
dependencies = [
  "requests>=2.25.1",
  "numpy>=1.21.0"
]

# 可选依赖组,比如开发环境依赖,对应setup.py的extras_require
[project.optional-dependencies]
dev = [
  "pytest>=7.0",
  "black>=22.0",
  "flake8>=4.0"
]

# 命令行脚本入口,对应setup.py的entry_points.console_scripts
[project.scripts]
your-cli-tool = "your_project.main:cli_entry"

日常操作命令

所有操作和你原来用setup.py的方式完全一致,不需要改习惯:

  • 检查pip版本:确保pip≥21.0,执行pip --version,版本不够就升级:pip install --upgrade pip
  • 本地开发安装(带热更新):pip install -e .[dev](带dev依赖组),或者pip install -e .(只装生产依赖)
  • 常规安装项目:pip install .
  • 打包成wheel/sdist包:先装临时打包工具pip install build,然后执行python -m build,生成的包会在dist目录下,和原来用setup.py打包的结果一致

迁移注意事项

  • 如果原来的setup.py有复杂的动态逻辑(比如动态生成版本号、自定义构建步骤),可以保留一个极简的setup.py作为过渡,或者把逻辑移到setup.cfg文件中(setuptools支持从setup.cfg读取扩展配置)
  • 团队成员不需要安装任何新工具,继续用原来的pip命令即可完成所有操作

内容的提问来源于stack exchange,提问作者Ema Il

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:06:21