【问题标题】:When working with a venv virtual environment, which files should I be commiting to my git repository?在使用 venv 虚拟环境时,我应该将哪些文件提交到我的 git 存储库?
【发布时间】:2018-01-05 18:32:18
【问题描述】:
使用GitHub's .gitignore,我能够过滤掉一些文件和目录。但是,有几件事让我有点困惑:
- GitHub 的 .gitignore 不包含 venv 创建的 /bin 和 /share。但是,我认为 git 应该忽略它们,因为用户应该自己构建虚拟环境。
- Pip 生成了一个 pip-selfcheck.json 文件,看起来很混乱。我认为它通常会这样做,而我之前从未见过该文件,因为它已与我的全局 pip 一起放置。
- pyvenv.cfg 是我真的无法理解的东西。一方面,它指定了python版本,其他想要使用该项目的人应该需要它。另一方面,它还指定了
home = /usr/bin,虽然在许多 Linux 发行版上可能是正确的,但不一定适用于所有系统。
还有其他我错过的文件/目录吗?对于如何构建项目以及包含哪些内容,是否有更严格的指导方针?
【问题讨论】:
标签:
python
git
python-venv
【解决方案1】:
虽然 venv 是一个非常有用的工具,但您不应该假设(除非您有充分的理由这样做)查看您的存储库的每个人都使用它。避免提交仅由 venv 使用的任何文件;这些对于能够运行您的代码并不是绝对必要的,而且它们会让不使用 venv 的人感到困惑。
您需要在存储库中包含的唯一配置文件是由pip freeze > requirements.txt 生成的requirements.txt 文件,其中列出了包依赖项。然后,您可以在自述文件中添加注释,指示用户使用命令 pip install -r requirements.txt 安装这些依赖项。在自述文件中指定所需的 Python 版本也是一个好主意。