开发poetry管理的Python包所需的最精简setup.py是什么?
最简适配Poetry项目的无依赖setup.py模板
该模板完全复用Poetry在pyproject.toml中已填写的字段,无需手动维护重复信息,且默认清空所有依赖声明,完全符合跳过依赖安装的需求。
适用Python 3.11+(使用标准库无额外依赖)
from setuptools import setup import tomllib with open("pyproject.toml", "rb") as f: pyproject = tomllib.load(f) poetry_config = pyproject["tool"]["poetry"] setup( name=poetry_config["name"], version=poetry_config["version"], packages=poetry_config.get("packages", [poetry_config["name"]]), install_requires=[], # 清空依赖声明,直接跳过依赖检查 )
适用Python 3.10及更早版本
先执行pip install tomli安装toml解析工具,再使用如下代码:
from setuptools import setup import tomli as tomllib with open("pyproject.toml", "rb") as f: pyproject = tomllib.load(f) poetry_config = pyproject["tool"]["poetry"] setup( name=poetry_config["name"], version=poetry_config["version"], packages=poetry_config.get("packages", [poetry_config["name"]]), install_requires=[], )
使用方法
- 将上述代码保存为项目根目录下的
setup.py - 执行命令
pip install -e . --no-deps完成可编辑安装 - 后续遇到缺失依赖手动执行
pip install 对应依赖名安装即可
额外说明
不需要额外添加其他字段,上述配置已经包含可编辑安装需要的全部核心信息:包名、版本号、包路径。其他诸如作者、许可证、项目描述等非核心字段不会影响安装使用,无需填写。
如果你的项目代码存放在src目录而非根目录下的同名包目录,只需要将packages配置项修改为packages=["src/" + poetry_config["name"]]即可。
内容的提问来源于stack exchange,提问作者Haterind
相关产品推荐
相关产品推荐

