如何使用 `setuptools`:从目录结构到配置详解

如何使用 setuptools:从目录结构到配置详解

setuptoolsOfficial project repository for the Setuptools build system项目地址:https://gitcode.com/gh_mirrors/se/setuptools

一、项目目录结构及介绍

setuptools 是 Python 生态中一个关键的包管理工具,它使得Python包的创建、安装、依赖管理和分发变得更加简单。从GitHub仓库 https://github.com/pypa/setuptools.git 下载或克隆该项目后,典型的初始目录结构如下:

setuptools/
│
├── LICENSE.txt          # 许可证文件,说明软件使用的授权方式。
├── MANIFEST.in          # 指示哪些文件应包含在发布的源代码包中,除了默认的Python文件。
├── README.rst           # 项目说明文件,通常包含快速入门指南和项目概述。
├── setup.py             # 核心文件,用于构建、打包和安装项目。
├── setuptools           # 包含核心模块和函数的src目录(某些版本可能直接包含在根目录下作为模块)。
│   └── ...
├── tests/               # 测试代码目录,用于验证setuptools功能。
│   └── ...
└── ...                  # 可能还包含其他文档或辅助脚本等。

二、项目的启动文件介绍 - setup.py

setup.py 文件是使用 setuptools 的入口点。它定义了如何构建、安装和打包你的Python项目。一个基本的 setup.py 文件示例会包括元数据如作者、版本、描述以及依赖关系等。例如:

from setuptools import setup, find_packages

setup(
    name="Your-Package-Name",
    version="0.1",
    packages=find_packages(),
    install_requires=[
        "dependency1",
        "dependency2==2.4",  # 版本锁定
    ],
    author="Author Name",
    author_email="author@example.com",
    description="A short description of the package.",
)

通过这个文件,开发者可以控制其项目的安装过程及其与其他Python包的关系。

三、项目的配置文件介绍 - setup.cfgpyproject.toml

虽然问题中没有特别提到 setup.cfgpyproject.toml,但在现代的Python项目中,特别是在使用 setuptools 进行高级配置时,这两个文件变得越来越重要。

setup.cfg

setup.cfg 允许将一些原本写在 setup.py 中的配置选项外部化,使代码更简洁,也便于自动化处理和维护。例如,可以在 setup.cfg 中指定metadata、指定测试命令、编译选项等。

[metadata]
name = ExampleProject
version = attr: example.__version__
description = A brief description.
long_description_content_type = text/markdown
 classifiers =
     Programming Language :: Python :: 3

[options]
packages = find:
include_package_data = True

[options.packages.find]
where = src

pyproject.toml

随着PEP 517和PEP 518的引入,pyproject.toml 成为了声明项目构建系统的标准文件,尤其是当使用现代的打包工具如poetry或指明特定的setuptools版本时更为常见。

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

此配置告诉Python生态,该怎样构建此项目,使用哪些工具进行依赖管理。

综上所述,理解这些组件对于有效地利用 setuptools 管理和发布Python包至关重要。正确配置这些文件,可以使您的开发流程更加标准化、高效。

setuptoolsOfficial project repository for the Setuptools build system项目地址:https://gitcode.com/gh_mirrors/se/setuptools

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏秦任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值