从模板创建项目#
从模板创建项目
类似于 yarn create 和 npm create,PDM 也支持从模板初始化或创建项目。模板作为 pdm init 的位置参数给出,可以采用以下形式之一:
pdm init django- 从模板https://github.com/pdm-project/template-django初始化项目pdm init https://github.com/frostming/pdm-template-django- 从 Git URL 初始化项目。可以接受 HTTPS 和 SSH URL。pdm init django@v2- 检出特定的分支或标签。完整的 Git URL 也支持这样做。pdm init /path/to/template- 从本地文件系统上的模板目录初始化项目。pdm init minimal- 使用内置的 "最小" 模板初始化,只生成一个pyproject.toml.
pdm init 将使用内置的默认模板。
项目将在当前目录初始化,同名的现有文件将被覆盖。您还可以使用 -p <path> 选项在新路径下创建项目。
贡献模板#
根据模板参数的第一个形式,pdm init <name> 将引用位于 https://github.com/pdm-project/template-<name> 的模板存储库。
要贡献模板,您可以创建一个模板存储库,并提出请求将所有权转移给 pdm-project 组织(可以在存储库设置页面的底部找到)。组织的管理员将审核请求并完成后续步骤。如果转移被接受,您将被添加为存储库的维护者。
模板的要求#
模板存储库必须是一个基于 pyproject 的项目,其中包含一个具有符合 PEP-621 规范的元数据的 pyproject.toml 文件。
不需要其他特殊的配置文件。
项目名称替换#
在初始化时,模板中的项目名称将被新项目的名称替换。这通过递归全文搜索和替换来完成。导入名称是由项目名称派生的,通过将所有非字母数字字符替换为下划线并转为小写来完成,它也将以相同的方式进行替换。
例如,如果模板中的项目名称为 foo-project,而您想要初始化一个名为 bar-project 的新项目,则将进行以下替换:
- 在所有
.md文件和.rst文件中,将foo-project替换为bar-project - 在所有
.py文件中,将foo_project替换为bar_project - 在目录名中,将
foo_project替换为bar_project - 在文件名中,将
foo_project.py替换为bar_project.py
因此,如果导入名称不是从项目名称派生的,我们不支持名称替换。
使用其他项目生成器#
如果您正在寻找更强大的项目生成器,您可以通过 --cookiecutter 选项使用 cookiecutter 以及通过 --copier 选项使用 copier。
您需要分别安装 cookiecutter 和 copier 来使用它们。您可以通过运行 pdm self add <package> 来完成。
要使用它们:
1 2 3 | |