当前位置: 首页 > 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.jsqmd.com/news/27353/

相关文章:

  • 大模型量化版本
  • 靠谱的桥架厂家:2025年电气桥架供应商综合实力排行榜
  • 成都桥架工厂推荐榜:2025年优质供应商深度解析
  • 2025 年土工布厂家最新推荐榜,涵盖短纤 / 长丝 / 防渗等品类,技术实力与市场口碑深度解析
  • vue3+ts+vant4开发,配置自动引入组件,不再使用import引入
  • 2025 年土工膜厂家最新推荐榜,技术实力与市场口碑深度解析含 HDPE / 复合土工膜等多品类
  • wireguard 入门
  • 251031
  • 2025 年船用靠球厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质防护设备品牌充气/橡胶/防撞/漂浮船用靠球/船用靠球聚氨酯护舷公司推荐
  • Python引入模块 _ 别人写的,拿来吧你
  • 2025年航空警示球厂家权威推荐榜单:有机复合材料手孔井/光缆接头保护箱/树脂穿线井源头厂家精选
  • 2025年新型耐力板制造商权威推荐榜单:专业的耐力板/高品质耐力板/耐用的耐力板源头厂家精选
  • C# 中 Hashtable 学习笔记
  • 清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践
  • Ubuntu笔记本盖上不休眠
  • 背包问题千千结:遍历顺序、内外循环,我们该如何思考?
  • 2025年GEO搜索企业权威推荐榜单:GEO广告/GEO排名/大模型GEO源头企业精选
  • 2025年10月遗产继承律师推荐榜:五强对比与专业评测
  • 2025年河北关键词排名查询机构权威推荐榜单:seo关键词排名优化/关键词seo排名 /关键词优化排名源头机构精选
  • 2025年防爆正压柜厂家权威推荐榜单:防爆控制柜/粉尘防爆柜/防爆正压型小屋源头厂家精选
  • CANape的CASL工具箱
  • 2025年10月25+抗老精华产品口碑榜:五款高回购单品对比评测
  • Python 基本语法
  • 基础算法(四)堆排序
  • 第6章:工作流 (Workflow):编排复杂的业务逻辑 - 教程
  • 2025年皮带称厂家权威推荐榜单:装载机秤/螺旋秤/定量给料机源头厂家精选
  • 2025年led全彩显示屏制造商权威推荐榜单:led数字显示屏/工业显示屏/led异形显示屏源头厂家精选
  • 全新升级!山海鲸4.6.3版本正式亮相
  • 2025年中国玻璃钢管道厂家排名:高性价比玻璃钢管道厂家深度测评
  • 刚刚 Cursor2.0炸裂发布!这3大亮点必学