一个小而全的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

后记

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

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


目录
相关文章
|
19天前
|
机器学习/深度学习 人工智能 算法
机械视觉:原理、应用及Python代码示例
机械视觉:原理、应用及Python代码示例
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能:原理、应用与Python代码示例
人工智能:原理、应用与Python代码示例
|
5天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
16 0
|
5天前
|
前端开发 文件存储 Python
python之xhtml2pdf: HTML转PDF工具示例详解
python之xhtml2pdf: HTML转PDF工具示例详解
9 0
|
5天前
|
语音技术 开发者 Python
python之pyAudioAnalysis:音频特征提取分析文档示例详解
python之pyAudioAnalysis:音频特征提取分析文档示例详解
10 0
|
5天前
|
数据采集 数据挖掘 Python
Python之html2text: 将HTML转换为Markdown 文档示例详解
Python之html2text: 将HTML转换为Markdown 文档示例详解
6 0
|
5天前
|
存储 JSON 编解码
python之simplejson:JSON 编/解码器示例详解
python之simplejson:JSON 编/解码器示例详解
7 0
|
5天前
|
JSON 数据格式 索引
python之JMESPath:JSON 查询语法库示例详解
python之JMESPath:JSON 查询语法库示例详解
14 0
|
5天前
|
存储 数据处理 Python
python 之map、zip和filter迭代器示例详解
python 之map、zip和filter迭代器示例详解
9 0
|
5天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
14 0