2017-07-29 439 views
1

使用GitHub's .gitignore,我能够过滤出一些文件和目录。但是,有几件事情让我有点困惑:当使用venv虚拟环境时,应该将哪些文件提交给我的git存储库?

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

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

回答

4

虽然venv是一个非常有用的工具,但您不应该假设(除非您有足够的理由这么做),否则查看您的存储库的每个人都会使用它。避免提交任何仅由venv使用的文件;这些并不是严格需要能够运行你的代码,并且他们对不使用venv的人感到困惑。

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

+0

谢谢!这很有道理。 – Jakob

相关问题