如何更改 运行 `poetry new` 时生成的默认 `pyproject.toml`

How to change default `pyproject.toml` that is generated when running `poetry new`

当我 运行 poetry new [directory] 它在目录中生成一个 pyproject.toml 但我总是发现我对其进行了相同的初始更改,例如

我如何更改这些默认值,以便当我 运行 poetry new python 和 pytest 有我想要的版本时?

pyproject.toml中指定的python版本是否基于系统的python版本?如果是这样,我认为我无法更改系统的 python 版本,因为我使用的是 mac,它可能会弄乱我的 OS。或者我可以吗?

在 python 中创建项目模板的标准方法是使用 cookiecutter 实用程序。它的文档非常好,您可以轻松开始创建自己的模板,但我将使用您提供的示例进行简短介绍。

Cookiecutter 使用模板语言,允许您指定项目模板的哪些部分可以参数化。在您的情况下,这将是项目名称(可自由选择),也可能是 python 和 pytest 版本(来自值列表)。此信息将存储在一个名为 cookiecutter.json 的文件中(更多有关该文件外观的示例 here),该文件大致如下所示:

{
    "full_name": "<your name>",
    "email": "<your name>@<email>.com",
    "project_name": "default",
    "version": "0.1.0",
    "python_version": ["3.8", "2.7"],
    "pytest_version": ["5.4", "4.6"]
}

现在您需要:

  • 运行 poetry new my_cookie 为模板创建基础
  • cookiecutter.json放入生成的文件夹
  • 将顶层文件夹下所有提及的项目名称替换为{{cookiecutter.project_name}},包括文件和目录
  • cookiecutter.json
  • 中的所有其他参数重复该步骤
  • 如果完成,请通过 运行ning cookiecutter path/to/my_cookie
  • 从您的模板创建一个项目
  • 如果您遇到困难,请查看 this sample project template 或我链接的文档以获取指导