一个小而全的Python项目示例

简介: 之前分享过几篇Python的开发小作品,没有过多提到项目组织。本文展示一个常见的python项目结构。

Python的好处是代码很容易理解,而且语言层面简洁。

但是就是因为太简洁了,导致各种项目结构不一,本文演示一下学委常用的项目组织方式。

如下目录所示

image.png

|-(根目录)


|--requirements.txt  # 项目依赖库


|--test_requirements.txt # 测试依赖库


|--setup.py # 项目配置脚本


|--python_sample #为代码所在package


|--tests # 测试代码目录


其他文件介绍


.gitignore #git类代码仓库必备,用来忽略某些特定文件的checkin


pyvenv.cfg & bin & lib # 由virtualenv 创建的


.coverage && htmlcov # 由pytest coverage 创建的


项目开发

pip install -r requirements.txt


pip install -r test-requirements.txt

image.png

安装项目

python setup.py install

image.png

运行代码

python -m python_sample.demo #运行示例模块内的demo程序的main函数

image.png

运行测试代码

cd tests && pytest

image.png

查看测试覆盖率

pytest --cov=python_sample tests

image.png

pytest --cov=python_sample --cov-report=html

image.png

测试报告生成在htmlcov目录内。

代码分析

程序demo.py

  • 定义了一个add函数,执行两个参数的加法
  • 定义了一个main函数,接受参数变量
  • 结尾定义了程序的入口把参数传递给main函数

image.png

运行python_sample模块中的demo程序

image.png

测试代码解析

本文使用pytest的assert函数,它比unittest更加易用。

本文的一个简单使用: assert 目标函数调用 比较符 结果,也就是下面的: assert add(1,1) == 2

image.png

后记

写代码不写测试就是流氓,或者不想让别人使用。

这样生成测试报告别人看到覆盖率高,使用起来也更加放心。


目录
相关文章
|
5月前
|
JSON API 数据格式
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
|
5月前
|
缓存 JSON API
VIN车辆识别码查询车五项 API 实践指南:让每一俩车有迹可循(Python代码示例)
VIN(车辆识别代码)是全球唯一的17位汽车标识码,可快速获取车架号、发动机号、品牌型号等核心信息。在二手车交易、保险理赔、维修保养等场景中,准确解析VIN有助于提升效率与风控能力。本文介绍VIN码结构、适用场景,并提供Python调用示例及优化建议,助力企业实现车辆信息自动化核验。
966 1
|
5月前
|
JSON API UED
运营商二要素验证 API:核验身份的一致性技术实践(Python示例)
随着线上业务快速发展,远程身份核验需求激增。运营商二要素验证API通过对接三大运营商实名数据,实现姓名、手机号、身份证号的一致性校验,具备权威性高、实时性强的优势,广泛应用于金融、电商、政务等领域。该接口支持高并发、低延迟调用,结合Python示例可快速集成,有效提升身份认证的安全性与效率。
578 0
|
5月前
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
6月前
|
JSON 缓存 API
身份证二要素核验接口调用指南 —— Python 示例
本文介绍如何在 Python 中快速实现身份证二要素核验功能,适用于用户注册、金融风控等场景。通过阿里云市场提供的接口,可校验「姓名 + 身份证号」的一致性,并获取性别、生日、籍贯等信息。示例代码展示了从环境变量读取 APP_CODE、发送 GET 请求到解析 JSON 响应的完整流程。关键字段包括 code(1-一致,2-不一致,3-无记录)、msg 和 data。常见问题如 403 错误需检查 AppCode,超时则优化网络或设置重试机制。集成后可根据业务需求添加缓存、限流等功能提升性能。
552 4
|
3月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
347 1
|
3月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
3月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
234 0
|
9月前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。

推荐镜像

更多