11

我正在使用一个名为Poetry的非常新的 Python 包管理器。

它会在创建新项目(环境)时创建多个文件/目录,但我不确定应该添加哪个以.gitignore获得最佳实践。

假设我通过这样做创建了一个新的诗歌项目:

$ poetry new foo_project
$ cd foo_project
$ poetry add numpy
$ ls

有:

tests (directory)
foo_project (also a directory)
pyproject.toml (a file that specifies installed packages)
poetry.lock (a lock file of installed packages)
README.rst (I don't know why README is created but it just shows up.)

我通常添加tests/,foo_project/和因为它们似乎依赖于创建项目的机器poetry.lockREADME.rst此外,我似乎只能重现环境,pyproject.toml这是我忽略所有其他文件/目录的另一个原因。

然而,这只是我的直觉,不幸的是,我找不到任何官方指南,我真正应该.gitignore在官方文档中添加什么。

我不知道自己在做什么,这让我很烦恼。我应该添加哪些.gitignore

4

1 回答 1

9

最近也转向诗歌。

我会说你不应该在你tests/的. 换句话说,这些文件和文件夹应该在版本控制中。我的理由如下:foo_project/poetry.lockREADME.rst.gitignore

tests/- 您的测试不应该依赖于机器(除非这是您的软件包的已知限制)并且为其他人提供测试是他们测试的方式a)安装已经工作并且b)他们所做的任何更改都不会破坏过去的功能,所以拉取请求变得更加健壮。

foo_project/- 这就是你的 python 模块所在的地方!如果您希望诗歌能够构建和发布您的包,您所有的 .py 文件都应该在此文件夹中。

poetry.lock- 见https://python-poetry.org/docs/basic-usage/它说:

当 Poetry 完成安装后,它会将下载的所有包和它们的确切版本写入 poetry.lock 文件,将项目锁定到这些特定版本。您应该将poetry.lock 文件提交到您的项目repo,以便所有从事该项目的人都被锁定到相同版本的依赖项(更多内容见下文)。

README.rst- 虽然这个可能更多的是个人的东西,如果你使用诗歌来发布你的包,这个文件就会成为你的包自述文件,例如到 PyPi。没有它,你的包将有一个空的自述文件。我有两个自述文件,一个 .md(用于 GitHub)和一个 .rst(用于 PyPi)。我为开发人员/用户使用 GitHub 自述文件,为纯用户使用 PyPi。

于 2020-03-24T14:54:04.383 回答