自定义第三方模块

news/2025/10/31 11:58:49/文章来源:https://www.cnblogs.com/qiujunxian/p/19179380

一、项目结构与命名​

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.mzph.cn/news/951632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型量化版本

大模型量化版本https://zhuanlan.zhihu.com/p/1927104685346653102 启用: https://ollama.com/library/qwen3:4b-instruct-2507-q8_0

靠谱的桥架厂家:2025年电气桥架供应商综合实力排行榜

文章摘要 随着城市基础设施建设和工业项目快速发展,桥架作为电缆敷设的关键设备,市场需求持续增长。本文基于产品质量、供货能力、服务体系和行业口碑等维度,对2025年国内桥架厂家进行综合评估,为工程项目方提供采…

成都桥架工厂口碑排行榜:2025年专业采购指南与供应商深度解析

摘要 随着西南地区基础设施建设加速,成都桥架行业迎来新一轮发展机遇。2025年桥架市场需求预计增长23%,智能化、轻量化成为行业新趋势。本文基于实地调研和用户口碑数据,为您呈现成都地区桥架工厂综合排名,并提供免…

成都桥架工厂推荐榜:2025年优质供应商深度解析

摘要 随着2025年基础设施建设的加速和智能城市的推进,桥架行业迎来快速发展期,成都作为西南地区的经济中心,桥架工厂竞争激烈。本文基于市场调研和行业数据,为您呈现成都地区桥架工厂排名前十,旨在帮助工程商、采…

2025 年土工布厂家最新推荐榜,涵盖短纤 / 长丝 / 防渗等品类,技术实力与市场口碑深度解析

引言 土工布作为基建工程核心材料,其质量直接关联工程寿命与安全。当前国内持证生产企业超 1200 家,但产品合格率仅 82%,低质产品导致的工程隐患占比达 17%。为破解采购难题,本榜单依托中国土工合成材料工程协会 2…

vue3+ts+vant4开发,配置自动引入组件,不再使用import引入

vue3+ts+vant4开发,配置自动引入组件,不再使用import引入前言: 这是vant4官方推荐的按需引入方式,对于自动引入的描述,官方是这么说的:相比于常规用法,这种方式可以按需引入组件的 CSS 样式,从而减少一部分代码…

2025 年土工膜厂家最新推荐榜,技术实力与市场口碑深度解析含 HDPE / 复合土工膜等多品类

引言 随着基建与环保工程对防渗材料需求的激增,土工膜市场品牌鱼龙混杂,产品性能差异显著,给工程采购带来极大挑战。为破解这一痛点,本次推荐榜依托土工合成材料工程协会 2025 年度测评结果生成,覆盖全国 132 家主…

wireguard 入门

wireguard 入门1.服务器端安装 sudo yum install wireguard-tools -y2.服务端生成密钥对 umask 077 wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key3.客户端安…

251031

目录JT-JY11T3S1-1JT-JY11T3S1-2 JT-JY11T3S1-1Good morning, This is BH tourist office Martin speaking. Oh, hello, i saw a poster about free thing to do in the area, and it said people should phone you fr…

2025 年船用靠球厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质防护设备品牌充气/橡胶/防撞/漂浮船用靠球/船用靠球聚氨酯护舷公司推荐

引言 为助力船舶企业精准选购船用靠球,船舶工业协会联合海事设备检测中心开展 2025 年度船用靠球品牌测评,覆盖国内 68 家主流厂家,从技术实力、产品性能、生产规模、市场口碑四大维度设置 28 项指标,采用 “现场检…

Python引入模块 _ 别人写的,拿来吧你

Python引入模块 _ 别人写的,拿来吧你#使用import引入模块import statisticsprint("\n" + str(statistics.median([1,2,3,4,5,6,7,8,9])))#使用from xx import xx 直接引入模块中的函数from statistics impo…

2025年航空警示球厂家权威推荐榜单:有机复合材料手孔井/光缆接头保护箱/树脂穿线井源头厂家精选

随着航空运输业和城市基础设施的快速发展,架空管线、铁塔等障碍物对航空安全构成的挑战日益凸显。航空警示球作为标识障碍物、保障飞行安全的关键设备,其市场需求持续增长。行业数据显示,2024年中国航空警示设备市场…

2025年新型耐力板制造商权威推荐榜单:专业的耐力板/高品质耐力板/耐用的耐力板源头厂家精选

在建筑、农业、广告装饰等领域,耐力板(聚碳酸酯实心板)因其高抗冲击性、轻质和耐候性成为玻璃的理想替代材料。据2025年行业报告显示,全球耐力板市场规模已达2182百万美元,预计2031年将增长至2885百万美元,期间年…

C# 中 Hashtable 学习笔记

天底下没有什么所谓的无心之语,仅有不细心说出的”有心之言。——烽火戏诸侯《剑来》1. 基础概念与用法 1.1 什么是 Hashtable? Hashtable(哈希表) 是 C# 中一种键值对(Key-Value)集合,用于通过唯一的键(Key)…

清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践

在云时代,AccessKey(AK)、Role(角色)是企业在云上进行身份认证和资源操作的“数字钥匙”。它们被广泛用于各种自动化工具、应用程序和 CI/CD 流程中。然而,随着业务的快速发展,AK、Role 的数量可能迅速膨胀,其…

Ubuntu笔记本盖上不休眠

nano /etc/systemd/logind.conf HandleLidSwitch=ignoreHandleLidSwitchDocked=ignore systemctl restart systemd-logind

背包问题千千结:遍历顺序、内外循环,我们该如何思考?

背包问题千千结:遍历顺序、内外循环,我们该如何思考?背包问题中“遍历方向”与“内外循环”对结果的影响总结 核心映射关系表(简洁版)问题类型 内外循环顺序 背包容量遍历方向 结果特征(核心影响) 典型题目01背…

2025年GEO搜索企业权威推荐榜单:GEO广告/GEO排名/大模型GEO源头企业精选

随着生成式AI搜索生态的快速发展,GEO(生成式引擎优化)行业已成为企业抢占下一代流量入口的核心战场。据第三方数据显示,2025年国内GEO服务市场规模已突破42亿元,年增长率高达38%,但仅15% 的企业具备跨平台优化能…

2025年10月遗产继承律师推荐榜:五强对比与专业评测

“父亲刚走,兄弟姐妹就房产份额争执不下”“母亲留下代书遗嘱,却被质疑无效”“外籍子女如何继承国内股权”——遗产继承纠纷往往同时触发法律、税务、情感三重高压线。2024年《婚姻家事法律服务行业白皮书》显示,全…

2025年河北关键词排名查询机构权威推荐榜单:seo关键词排名优化/关键词seo排名 /关键词优化排名源头机构精选

在流量竞争白热化的2025年,河北企业正通过专业关键词优化抢占市场先机。 在数字化营销浪潮的推动下,关键词排名优化已成为企业获取在线流量、提升品牌曝光的核心手段。据行业数据显示,2025年河北地区关键词优化服务…