1

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

  • python 版本(从 2.7 到 3.8)
  • pytest 版本(从 4.6 到 5.4)

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

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

4

1 回答 1

1

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

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

{
    "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
  • 如果你完成了,通过运行从你的模板创建一个项目cookiecutter path/to/my_cookie
  • 如果您遇到困难,请查看此示例项目模板或我链接的文档以获取指导
于 2020-05-02T07:50:35.697 回答