如何更改运行“新诗歌”时生成的默认“ pyproject.toml”

时间:2020-04-25 16:24:40

标签: python-poetry

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

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

如何更改这些默认值,以便在运行poetry new时python和pytest具有所需的版本?

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

1 个答案:

答案 0 :(得分:2)

在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中的所有其他参数重复该步骤
  • 完成后,通过运行cookiecutter path/to/my_cookie
  • 从模板创建项目
  • 如果遇到困难,请查看this sample project template或我链接以获取指导的文档