本篇文章给大家分享的是有关如何建立一个完美python的项目,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
下面有python教程栏目为大家建立一个完美python的项目,希望可以帮助到大家,一起讨论进步~
当开始一个新python的项目时,大家很容易一头扎进去就开始编码。其实花一点时间选择优秀的库,将为以后的开发节省大量时间,并带来更快乐的编码体验。
在理想世界中,所有开发人员的关系是相互依赖和关联的(协作开发),代码要有完美的格式,没有低级的错误,并且测试覆盖了所有代码。另外,所有这些将在每次提交时都可以得到保证。(代码风格统一,类型检测,测试覆盖率高,自动检测)
在本文中,我将介绍如何建立一个可以做到这些点的项目。您可以按照步骤操作,也可以直接跳到使用cookiecutter生成项目部分(老手)。
首先,让我们创建一个新的项目目录:
mkdir best_practices cd best_practices
<强> pipx安装Python三方库的命令行工具强>
pipx是一个可用于快速安装Python三方库的命令行工具。我们将使用它来安装pipenv和cookiecutter。通过下面的命令安装pipx:
python3 -m pip install ——user pipx python3 -m  pipx ensurepath
<强>使用pipenv进行依赖管理强>
pipenv为您的项目自动创建和管理virtualenv(虚拟环境),并在安装/卸载软件包时从Pipfile添加/删除软件包。它还会生成非常重要的Pipfile。锁用于保证依赖的可靠性。
当你知道,你和你的队友正在使用相同的库版本时,这将会极大地提高编程的信心和乐趣.Pipenv很好地解决了使用相同的库,版本不同的这一问题,Pipenv在过去的一段时间里获得了广泛的关注和认可,你可以放心使用。安装命令如下:
pipx install Pipenv
<强>使用黑色和isort进行代码格式化强>
黑色可以格式化我们的代码:
黑色是毫不妥协的Python代码格式化库。通过使用它,你将放弃手动调整代码格式的细节。作为回报,黑色可以带来速度,确定性和避免调整Python代码风格的烦恼,从而有更多的精力和时间放在更重要的事情上。
无论你正在阅读什么样的项目,用黑色格式化过的代码看起来都差不多。一段时间后格式不再是问题,这样你就可以更专注于内容。
黑通过减少代码的差异性,使代码检查更快。
而isort是对我们的进口部分进行排序:
isort为您导入的Python包部分(进口)进行排序,因此你不必再对进口进行手动排序。它可以按字母顺序对导入进行排序,并自动将其拆分成多个部分。
使用Pipenv安装它,以便它们不会使部署混乱(可以指定只在开发环境安装):
pipenv install black isort - dev
黑色和isort并不兼容的默认选项,因此我们将让isort遵循黑色的原则。创建一个设置。cfg文件并添加以下配置:
[isort] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=88
我们可以使用以下命令运行这些工具:
pipenv run 黑色 pipenv run  isort
<强>使用flake8保证代码风格强>
flake8确保代码遵循PEP8中定义的标准Python代码规范。使用pipenv安装:
pipenv install flake8 - dev
就像isort一样,它需要一些配置才能很好地与黑色配合使用。将这些配置添加到设置。cfg:
[flake8] 时间=ignore E203, E266,, E501, W503 max-line-length =88 max-complexity =18 select =, B, C, E, F, W, T4
现在我们可以运行flake8了,命令:pipenv flake8运行。
<强>使用mypy进行静态类型检查强>
mypy是Python的非强制的静态类型检查器,旨在结合动态(或“鸭子”)类型和静态类型的优点.Mypy将Python的表达能力和便利性与功能强大的类型系统的编译时类型检查结合在一起,使用任何Python VM运行它们,基本上没有运行时开销。
在Python中使用类型需要一点时间来适应,但是好处却是巨大的。如下:
- <李>
静态类型可以使程序更易于理解和维护