PyScaffold:一行命令搭好 Python 项目骨架
PyScaffold:一行命令搭好 Python 项目骨架
pyscaffold 在 GitHub 上有 2,259 Star。
这是一个 Python 项目生成器。输入 putup my_project,它就能给你搭出一个可以直接发布到 PyPI 的完整项目结构。
1、 这工具是干嘛的
写 Python 包的时候,每次都要手动建目录、写 setup.py、配测试框架、搭文档系统,这些重复劳动很烦。
PyScaffold 把这些全自动化了。一条命令生成项目模板,包含源代码目录、测试框架、文档配置、CI 配置、版本管理,全都安排好了。

2、 生成的项目里有什么
PyScaffold 的项目模板不是空壳,它集成了 Python 生态里成熟的工具链:
配置与打包:配置集中在 setup.cfg,不需要手写 setup.py。用 tox -e build 就能打包,发布到 PyPI 也只需要 tox -e publish。
版本管理:基于 setuptools_scm,用 Git tag 自动推断版本号。打 tag 后,版本会同步到 my_project.__version__。
测试与覆盖率:内置 pytest 配置和 pytest-cov,执行 tox 就会自动跑测试并生成覆盖率报告。
文档:预配置 Sphinx,支持 Read the Docs,默认启用 Numpy 和 Google 风格的 docstring。
Git 集成:生成的项目已经是 Git 仓库,附带合理的 .gitignore。加 --pre-commit 参数还能自动配置 pre-commit hooks。

3、 安装与使用
安装方式有几种:
pip install pyscaffold
# 或者
conda install -c conda-forge pyscaffold
# 或者
pipx install pyscaffold
安装后,putup 命令可用:
putup my_project
进入项目目录,创建虚拟环境后:
pip install -e .
项目就能以可编辑模式安装了。常用的 tox 命令:
tox -e build # 打包
tox -e publish # 发布到 test.pypi.org
tox -av # 查看所有可用任务
4、 扩展能力
PyScaffold 本身支持扩展:
pip install pyscaffold[all]
已有扩展覆盖数据科学项目(--dsproject)、Django(--django)、Markdown README(--markdown)、GitLab CI(--gitlab)等场景。也可以自己写扩展。
5、 谁适合用
-
经常需要创建可发布 Python 包的开发者
-
希望项目从一开始就遵循最佳实践的独立开发者或小团队
-
需要标准化项目结构的企业内部工具开发
-
经常需要创建可发布 Python 包的开发者
-
希望项目从一开始就遵循最佳实践的独立开发者或小团队
-
需要标准化项目结构的企业内部工具开发
更多推荐

所有评论(0)