当前位置: 首页 > news >正文

自定义第三方模块

一、项目结构与命名​

my_utils/
├── src/
│ └── my_utils/ # 真正的包目录(Python 3.3+ 可省略 __init__.py,但建议保留)
│ ├── __init__.py
│ └── calculator.py
├── tests/
│ └── test_calculator.py
├── pyproject.toml # 构建配置(推荐)
├── README.md
├── LICENSE
└── setup.cfg # 可选(若使用 setuptools)

 

  • 将代码放在 ​​src/​​ 下有助于避免开发期“同名导入”问题。
  • 使用 ​​PEP 8​​ 风格命名:模块/函数/变量用小写下划线,类用 ​​PascalCase​​。
  • 为包准备 ​​LICENSE​​(如 MIT、Apache-2.0),并写好 ​​README.md​​ 与基础示例。
  • 说明:模块本质是 ​​.py 文件​​,包是包含 ​​init.py​​ 的目录;模块搜索路径由解释器按顺序查找(内置→site-packages 等)

二、编写代码与本地开发安装

示例实现(src/my_utils/calculator.py):

 

def add(a: float, b: float) -> float:
"""Return the sum of a and b."""
return a + b

def multiply(a: float, b: float) -> float:
"""Return the product of a and b."""
return a * b

 

在 src/my_utils/init.py 中导出公共 API(便于用户直接 from my_utils import add):

 

from .calculator import add, multiply
__version__ = "0.1.0"

 

本地开发安装(可编辑模式,修改代码即时生效):

 

# 建议使用虚拟环境
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate

pip install -e .

说明:将模块放入 ​​site-packages​​ 或通过 ​​PYTHONPATH​​ 指定搜索路径均可实现导入;开发阶段优先用可编辑安装,避免频繁重装。

​​三、打包与构建配置​

使用现代构建工具 ​​Pyproject.toml​​(推荐 setuptools):

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

[project]
name = "my_utils"
version = "0.1.0"
description = "A tiny example utility package"
authors = [{name = "Your Name", email = "you@example.com"}]
license = {text = "MIT"}
readmes = ["README.md"]
license-files = ["LICENSE"]
dependencies = []
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
requires-python = ">=3.8"

 

可选:补充 ​​setup.cfg​​(若不用 pyproject.toml 也可用 setup.py,但 pyproject.toml 更现代):

[metadata]
license_file = LICENSE

[aliases]
test = pytest

[tool:pytest.ini_options]
testpaths = tests

 

构建分发包(生成 .tar.gz 与 .whl):

pip install build
python -m build
# 产物位于:dist/my_utils-0.1.0.tar.gz 与 dist/my_utils-0.1.0-py3-none-any.whl

 

四、测试、发布与安装使用​

本地/CI 测试与质量检查(示例):

pip install pytest pytest-cov
pytest tests/ -v

 

在代码中导入使用:

from my_utils import add, multiply

print(add(2, 3)) # 5
print(multiply(2, 3)) # 6

http://www.hn-smt.com/news/5063/

相关文章:

  • 成都桥架工厂推荐榜:2025年优质供应商深度解析
  • 251031
  • 2025年10月遗产继承律师推荐榜:五强对比与专业评测
  • 2025年10月25+抗老精华产品口碑榜:五款高回购单品对比评测
  • 2025年10月大型挖掘机品牌实力榜:外资在华累计销量与口碑数据公开
  • 2025年10月中型挖掘机租赁品牌榜:高原施工场景下的五强对比与选择
  • C# 中 Queue 学习笔记
  • 2025 年混合机厂家最新推荐排行榜:高效盘条式无重力犁刀式锥形卧式螺带连续式等机型优选企业测评结果及核心优势解析
  • 2025年佛山短视频运营制作公司推荐:五家服务商权威测评
  • 2025年比较好的地磅高评价厂家推荐榜
  • CF1795E Explosions?
  • nvm pnpm 多版本命令
  • 2025年优质的网带炉厂家选购指南与推荐
  • ui设计公司审美积累 | 扁平化app界面设计
  • 2025年正规的学校宿舍铁床厂家推荐及采购指南
  • 2025年正规的玻璃淋浴房配件品牌厂家排行榜
  • JOIST2025 传统题记录
  • 详细介绍:C语言内存管理与命令行参数详解
  • 2025年质量好的激光切割螺杆空压机厂家推荐及选择指南
  • 2025年1.2mm隧道防水土工布土工膜最新TOP品牌厂家排行
  • 2025 年球墨铸铁井盖,五防铸铁井盖,调式铸铁井盖,双层铸铁井盖厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 2025年诚信的上海天幕LED显示屏厂家最新实力排行
  • sg: window对象 常用方法
  • [笔记]Manacher 算法
  • P10281 [USACO24OPEN] Grass Segments G
  • 2025年优质的物联数字化配电柜热门厂家推荐榜单
  • 题解:P7213 [JOISC 2020] 最古の遺跡 3
  • 2025 年 10 月传感器厂家最新推荐,技术实力与市场口碑深度解析磁致伸缩位移/防爆位移/防水位移/隔爆位移/线性位移传感器厂家推荐
  • 2025年有实力冲压机械手行业内知名厂家排行榜
  • 2025 年摇摆筛厂家最新推荐榜,技术实力与市场口碑深度解析,聚焦优质供应商核心优势粉末摇摆筛/食品摇摆筛/防爆摇摆筛公司推荐