写个python包-pyscaffold的使用
Scaffold
Scaffold
是一个比较通用的 Python 包构建体系工具,其通过和其他一些包共同完成 Python 包的建立、安装、分发和后续的持久维护工作。
Scaffold
包主要负责的工作是将很多 Python 项目的工具整合起来,减少重复性工作。其可通过pip
安装:
1 | pip install pyscaffold |
记录一些我们遵循的惯例和标准
Python(包)项目的目录结构
https://blog.ionelmc.ro/2014/05/25/python-packaging/#the-structure
├─ src
│ └─ packagename
│ ├─ __init__.py
│ └─ ...
├─ tests
│ └─ ...
└─ setup.py
Scaffold 的基本使用过程
当安装好 pyscaffold 后,通常一些命令就已经加入系统的环境变量中,可以直接使用,如果不能,应当确认相关的项是否已经可用。
在准备之前,均应当安装好相关的环境,建议使用conda
安装和配置环境。
1 | conda env create -n ${condeEnvName} python=3.7 |
Scaffold 创建一个项目
- 在${my_project}目录下创建一个 Python 项目
1 | putup ${my_project} |
更详细的创建可参照https://pyscaffold.org/en/stable/examples.html
Scaffold
会使项目的目录成为以下结构:
├─ AUTHORS.rst
├─ LICENSE.txt
├─ docs
├─ setup.cfg
├─ src
│ ├─ init.py
│ └─ …
├─ CHANGELOG.rst
├─ README.rst
├─ requirements.txt
├─ setup.py
└─ tests 2. 配置项目和写代码、测试
项目通过setup.cfg
文件进行项目名、作者、协议、依赖等的配置,必要时可撰写修改 README.rst
一些功能的实现
不定期更新
命令行调用
在setup.cfg
中修改[options.entry_points]
的配置,格式如下:
1 | console_scripts = |
pytest 写单元测试
配置好 pyscaffold 后直接使用test
文件夹下的文件写即可,格式参照:
1 | import pytest |
注:pytest 可以在不同的函数、包中发现用例,发现的规则如下
- 文件名以 test_开头的 py 文件
- 以 test_开头的函数
- 以 Test 开头的类
- 以 test_开头的方法(与 2 类似)
- 要注意的是所有的包必须要有 init.py 文件(在使用各种编辑器时会自动生成)
使用前需要安装pytest-cov。
相关文章