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

Jak*_*kob 5 python git python-venv

使用GitHub的.gitignore,我能够过滤掉一些文件和目录.然而,有一些事情让我有点困惑:

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

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

小智 12

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

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