我按照设置在Mac上使用Python的说明进行操作 (http://docs.python-guide.org/en/latest/starting/install/osx/)
它建议将virtualenv创建的虚拟环境存储在项目目录中......这当然是一个git repo。
有没有理由不将virtualenv添加到git repo?这似乎很自然,但是......
答案 0 :(得分:9)
始终尝试检入源,而不是运行流程的结果。
virtualenv是特定于平台的; Windows virtualenv可能需要不同于Linux上创建的二进制文件。脚本文件中的路径几乎肯定会使用绝对路径,而不是相对路径,将virtualenv绑定到硬盘上的特定位置。
相反,请查看有关如何重新创建virtualenv的说明。添加命令,并使用pip
,zc.buildout
或Pipenv等工具让其他人为其平台重新创建正确的环境。
pip
允许您使用requirements.txt
文件将软件包安装到virtualenv中。你提交那个文件。 zc.buildout
允许您在.cfg
个文件中定义复杂的构建配置。承诺那些。 Pipenv跟踪Pipfile
中的顶级依赖项,并为完全可重现的环境创建Pipenv.lock
文件,检入这两个文件等。
答案 1 :(得分:4)
哲学上,virtualenv不是源代码,它是一堆可重现的工件。不应该检查它,最多应该检查一个脚本来更容易地重新创建它。
实际上,即使在一个系统中也无法移动virtualenv(在不破坏东西的情况下无法移动它),更不用说具有相同通用设置的不同系统(二进制路径和ABI可能不同),更不用说不同了操作系统(我真的要解释这个吗?)。因此,几乎在每种情况下都要在实际成本中进行检查(因为在克隆存储库后无法使用它)。
答案 2 :(得分:2)
只需在requirements.txt
文件中描述项目的依赖关系,并将该版本保存在git下以及项目代码等。之后很容易重新创建环境:只需运行pip install -r requirements.txt
。这是管理项目依赖关系的一种非常简洁明了的方法。
不将环境本身保留在回购中的一个原因是它会显着增加回购的大小,随着时间的推移会使你的git repo变慢(特别是克隆它)。
当然还有很多其他原因......