加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python开发必备:如何建立一个优秀的项目工程环境

发布时间:2019-09-05 00:08:34 所属栏目:建站 来源:虫虫安全
导读:在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上。本文以Python为例,教大家如何快速打造优秀的Python项目开发环境:内容涵盖了模块依赖管理、代码风格管理、调试测试管理和Git版本管理,使用gi

和isort一样,为了配合兼容Black,需要在setup.cfg中额外配置:

  1. [flake8] 
  2. ignore = E203, E266, E501, W503 
  3. max-line-length = 88 
  4. max-complexity = 18 
  5. select = B,C,E,F,W,T4 

mypy静态类型

Python开发必备:如何建立一个优秀的项目工程环境

Mypy是Python的可选静态类型检查器,可以用结合动态(或"鸭子")类型和静态类型优点其他代码的性能。通过Mypy将Python的动态类型便捷性和表现力的优势与静态类型强系统和编译时类型检查相结合,并且生成原生代码,支持通过Python VM运行,可以没有运行时开销的高性能运行。在Python中使用静态类型好处有:

可以使程序更易于理解和维护;

可以帮助编译时调试和发现错误,减少测试和调试。

可以在代码部署到生产环境之前就可以找到难以捕捉的错误。

可以使用pipenv直接安装Mypy:

  1. pipenv install mypy –dev 

mypy动态类型和静态类型一个示例如下:

Python开发必备:如何建立一个优秀的项目工程环境

项目配置

默认情况下,Mypy会递归检查所有类型注释的导入,这会导致库不包含这些注释时出错。需要修改mypy配置仅检查当前代码运行,并忽略没有类型注释的import模块。这也可以在setup.cfg中设置:

  1. [mypy] 
  2. files=项目,test 
  3. ignore_missing_imports=true 

代码测试

程序开发中,除了写代码外,另外一个重要的部分是单元测试。Python测试方面我们要介绍的工具有pytest。

Python开发必备:如何建立一个优秀的项目工程环境

可以使用pipenv添加测试工具包及扩展:

  1. pipenv install pytest pytest-cov --dev 

Pytest框架可以让编写小测试变得容易,而且支持以扩展的方式提供更加复杂的功能。下面是pytest网站的一个简单示例:

  1. # content of test_sample.py 
  2. def inc(x): 
  3. return x + 1 
  4. def test_answer(): 
  5. assert inc(3) == 5 

通过以下命令测试

  1. pipenv run pytest 

结果如下:

Python开发必备:如何建立一个优秀的项目工程环境

pytest-cov是pytest的单元测试行覆盖率的插件。pytets-cov的测试结果示例如下:

Python开发必备:如何建立一个优秀的项目工程环境

pytest还有很多的扩展插件:

pytest-cov: 单元测试覆盖率报告

pytest-django: 对Django框架的单元测框架

pytest-asyncio:对asyncio的支持

pytest-twisted: 对twisted框架的单元测框架

pytest-instafail: 发送错误时报告错误信息

pytest-bdd 测试驱动开发工具

pytest-konira 测试驱动开发工具

pytest-timeout: 支持超时功能

pytest-pep8: 支持PEP8检查

pytest-flakes: 结合pyflakes进行代码检查

更多插件可以查看github pytest-dev组织下的项目。

项目配置

项目中,所有的测试都应该放在test目录中,我需要给setup.cfg添加配置:

  1. [tool:pytest] 
  2. testpaths=test 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读