使用venv虚拟环境时,我应该将哪些文件提交到我的git存储库?

时间:2017-07-29 22:29:52

标签: python git python-venv

使用GitHub's .gitignore,我能够过滤掉一些文件和目录。但是,有一些事情让我有些困惑:

  • GitHub的.gitignore没有包含由venv创建的/ bin和/ share。我认为git会忽略它们,因为用户本身就是要构建虚拟环境。
  • Pip生成了一个pip-selfcheck.json文件,看起来大部分都像杂乱一样。我认为它通常会这样做,我之前没有看到过该文件,因为它已经放在了我的全球点。
  • pyvenv.cfg是我真正无法理解的。一方面,它指定了python版本,对于想要使用该项目的其他人来说应该是需要的。另一方面,它还指定了home = /usr/bin,虽然在很多Linux发行版中可能都是正确的,但并不一定适用于所有系统。

我错过了其他任何文件/目录吗?对于如何构建项目以及包含哪些内容,是否有更严格的指导原则?

1 个答案:

答案 0 :(得分:9)

尽管venv是一个非常有用的工具,但你不应该假设(除非你有充分的理由这样做),每个查看你的知识库的人都会使用它。避免提交仅由venv使用的任何文件;这些并不是运行代码所必需的,对于那些不使用venv的人来说,这些内容会让人感到困惑。

您需要在存储库中包含的唯一配置文件是由requirements.txt生成的pip freeze > requirements.txt文件,其中列出了软件包依赖项。然后,您可以在自述文件中添加注释,指示用户使用命令pip install -r requirements.txt安装这些依赖项。在自述文件中指定所需的Python版本也是一个好主意。