📜  Python中的Pyscaffold模块

📅  最后修改于: 2022-05-13 01:55:26.540000             🧑  作者: Mango

Python中的Pyscaffold模块

从Python项目开始通常非常复杂和复杂,因为它涉及设置和配置一些文件。这就是Pyscaffold的用武之地。它是一个设置新Python项目的工具,非常易于使用,并且可以在不到 10 秒的时间内设置好你的项目!要使用 Pyscaffold, Git 是必须的,尤其是 Windows 用户应该安装“Git Bash”。此外,PyScaffold 的安装还需要最新版本的“安装工具”。
每个Python包项目在内部由 PyScaffold 表示为与文件系统中的目录条目直接相关的树数据结构。这棵树被实现为一个简单的字典,其中的键表示将生成文件的路径,而值表示它们的内容。

安装

要使用 pip 安装 Pyscaffold,请执行以下命令以安装最新的 Pyscaffold 版本:

pip install --upgrade pyscaffold

如果您没有安装 pip,请参考这篇文章:如何安装 pip 命令
PyScaffold 也可以通过在 Anaconda 命令提示符上执行以下操作来安装 conda:

conda install -c conda-forge pyscaffold


如果你看到这样的东西,那么这意味着 Pyscaffold 已经安装成功了!

设置新项目

PyScaffold 具有许多特性和配置默认值,以使开发、维护和分发您自己的Python包的频繁任务尽可能简单。
要设置一个新的Python项目,请使用 putup 命令:

putup Your_Project

这将使用Python项目的项目布局创建一个文件夹 Your_Project,它有一个 Your_Project 包文件夹以及文档和测试文件夹以及文件 setup.py、setup.cfg、AUTHORS.txt、README.txt 和 LICENSE.txt。所有配置都在“setup.cfg”而不是 setup.py 中完成。在这里,您可以更改与包相关的所有设置(即作者、URL、许可证等)。此外,要添加其他数据文件,我们可以在 setup.cfg 中添加它们的名称,它们将被自动添加。
PyScaffold 旨在涵盖创作和分发Python包的基本知识。大多数时候,设置 putup 选项就足以确保项目的正确配置。 PyScaffold 可以在运行时由其他Python包进行扩展。也可以编写嵌入 PyScaffold 的外部脚本或程序,并使用它来执行一些用户定义的操作。
例子:

Python3
# Temporarily adjust padding
# while executing a context.
from pyscaffold.log import logger
 
 
logger.report('invoke', 'custom_action')
with logger.indent():
    logger.report('create', 'some / file / path')
 
# Expected logs:
# --------------------------------------
# invoke  custom_action
# create    some / file / path
# --------------------------------------
# Note how the spacing between activity and
# subject in the
# second entry is greater than the equivalent
# in the first one.


更新:

  • 每当发布 PyScaffold 的新更新时,您都可以使用此命令更新
    您项目的结构/脚手架:
output --update my_project
  • 更新只会更新用户通常不使用或修改的文件,因此,
    更新所有文件,使用强制更新:
--update --force
  • 笔记:
    • 如果您从 2.0 之前的 PyScaffold 版本更新,则必须手动删除文件 versioneer.py 和 MANIFEST.in。
    • 如果您从 2.2 之前的版本更新,则必须删除 ${PACKAGE}/_version.py。

如何迁移到 PyScaffold

最初,项目(假设为 my_project)必须位于 Git 存储库中,并且包含一个包(假设为 my_package)以及您的Python模块。
注意:您的工作树并不脏,即所有更改都已提交,所有重要文件都在版本控制之下。

  • 首先切换到 my_project 的父文件夹并键入以下命令,以便在您的存储库中部署新的项目结构。
putup my_project --force --no-skeleton -p my_package
  • 使用此命令更改为 my_project 并将您的旧包文件夹移动到 src 中,如果项目具有除测试之外的测试文件夹或除 docs 之外的文档文件夹,则使用相同的技术。
git mv my_package/* src/my_package/
  • 使用 git status 检查未跟踪的文件并使用 git add 添加它们。
  • .最后,使用 git difftool 检查所有被覆盖的文件是否有需要传输的更改。您可能在 setup.py 中完成的所有配置都需要移至 setup.cfg。在大多数情况下,您不需要对 PyScaffold 提供的新 setup.py 文件进行更改。
  • 运行这些命令来检查一切是否正常:
run python setup.py install and python setup.pysdist
  • 同时运行Python setup.py docs 和Python setup.py test 来检查 Sphinx 和 PyTest 是否正确运行。