2013-11-01 119 views
4

我下面的设立与Python来工作的指示在Mac (http://docs.python-guide.org/en/latest/starting/install/osx/是否有理由不检查virtualenv环境以及python项目的源代码?

这表明以存储的virtualenv在项目目录中创建虚拟环境......这当然是一个混帐回购协议。

是否有任何理由不是将virtualenv添加到git repo?这似乎是自然而然的事情,但...

+0

我相信virtualenvs通常依赖于绝对pathes。 – wmeyer

+0

它建议将virtualenv存储在项目目录中的位置?我没有看到这样的建议,这是一件好事,因为即使是最beign解释(在同一目录中'.git'目录中的virtualenv,但不检查它)是更多的麻烦比它的价值。 – delnan

+0

这事实上是很难理解的句子,与结束“运行在项目的目录中的virtualenv工具”。我现在可以看到,我可能误解了这整个句子:(但是我从这个问题的答案中学到了很多东西:)但是,如果在项目目录中运行此语句后的命令,则会结束与虚拟env在回购... – GreenAsJade

回答

7

总是尝试检查来源,而不是运行一个进程的结果。

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

请改为检查如何重新创建virtualenv的说明。包括命令,并使用诸如pipzc.buildout之类的工具让其他人为其平台重新创建合适的环境

pip允许您将软件包安装到带有requirements.txt文件的virtualenv中。你会承诺文件。 zc.buildout可让您在.cfg文件中定义复杂的构建配置。提交这些。

4

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

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

2

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

一个理由不保持环境本身在回购是,它会显著增加了回购的规模,它随着时间的推移将与您的git回购慢(尤其是克隆它)的工作。

还有许多其他的原因,当然...

相关问题