5

我正在按照在 Mac 上使用 Python 进行设置的说明(http://docs.python-guide.org/en/latest/starting/install/osx/

它建议将virtualenv创建的虚拟环境存储在项目目录中......这当然是一个git repo。

有什么理由将 virtualenv 添加到 git repo 中吗?这似乎是很自然的事情,但是......

4

3 回答 3

9

始终尝试检查,而不是运行进程的结果。

virtualenv 是特定于平台的;Windows virtualenv 可能需要不同于在 Linux 上创建的二进制文件。脚本文件中的路径几乎肯定会使用绝对路径,而不是相对路径,将 virtualenv 绑定到硬盘上的特定位置。

相反,请查看有关如何重新创建 virtualenv 的说明。包括命令,并使用或Pipenv 之pip类的工具让其他人为他们的平台重新创建正确的环境。zc.buildout

pip允许您使用文件将软件包安装到 virtualenv 中requirements.txt。你会提交那个文件。允许您在文件zc.buildout中定义复杂的构建配置。.cfg提交那些。Pipenv 跟踪顶级依赖关系Pipfile并为完美可重现的环境创建一个Pipenv.lock文件,签入这两个文件等。

于 2013-11-01T11:18:00.007 回答
5

从哲学上讲,virtualenv 不是源代码,它是一堆可重现的工件。它不应该被签入,最多应该签入一个更容易重新创建它的脚本。

实际上,即使在单个系统中,virtualenv 也是完全不可移植的(不能在不破坏东西的情况下移动它),更不用说跨具有相同通用设置的不同系统(二进制路径和 ABI 可能不同),更不用说不同的操作系统了(我真的需要解释这个吗?)。因此,在几乎所有情况下检查它实际上都会花费您的时间(因为在克隆存储库后您无法使用它)。

于 2013-11-01T11:18:16.433 回答
2

只需在文件中描述项目的依赖关系,requirements.txt并将版本与项目代码等一起保存在 git 下。之后重新创建环境很容易:只需运行pip install -r requirements.txt. 这是管理项目依赖项的一种非常简洁明了的方法。

不将环境本身保留在 repo 中的一个原因是,它会显着增加 repo 的大小,随着时间的推移,这会使你的 git repo 工作变慢(尤其是克隆它)。

当然还有很多其他的原因...

于 2013-11-01T11:19:40.590 回答