pyproject.toml 包平面布局?

问题描述 投票:0回答:1

出于多种原因,我不想将我的单个包存储在

src
文件夹中,所以我曾经选择平面布局项目结构(位于项目根目录中的包文件夹)。有一个名为
foo
的模块,我只想使用
pyproject.toml
发现这个模块。我正在使用最新的
setuptools==65.5.0
Cpython 3.11
。那么如何使用此设置实现平面布局包发现?

这里是

pyproject.toml

[build-system]
requires = ["setuptools >= 65.5.0"]
build-backend = "setuptools.build_meta"

[project]
name = "foo"
authors = [
    #TODO add authors
]
description = "desc"
readme = "README.md"
requires-python = ">=3.11"
keywords = ["keywords"]
license = {text = "MIT"}
classifiers = [
    #TODO add classifiers
]
dependencies = [
    # some deps
]

[project.optional-dependencies]
dev = [
    #TODO add optional dependencies
]

[project.gui-scripts]
foo = "foo:launch"

PROJECT_ROOT/foo/__init__.py

import sys

from .app import App

app = None

def launch(argv: list[str] = []):
    app = App(argv)
    return app.exec()

if __name__ == "__main__":
    launch(sys.argv)
setuptools python-packaging pyproject.toml
1个回答
0
投票

据我所知,setuptools会自动找到

foo
包并将其打包到您问题中显示的项目目录中。如果您想跳过自动行为并想对其进行明确说明,那么我认为您需要将以下部分添加到您的
pyproject.toml
文件中:

[tool.setuptools.packages.find]
include = ["foo*"]
namespace = False  # this is probably the default and can be skipped
© www.soinside.com 2019 - 2024. All rights reserved.