与可替代品的比较

下面几个替代品也可以创建隔离环境:

  • workingenv (建议不考虑workingenv) 是virtualenv的前身。它使用全局环境的Python解释器,但要靠设置 $PYTHONPATH 来激活环境。因此在运行隔离环境以外的Python脚本时,出现很多问题(比如,象全局环境下的 hg 或 bzr )。而且它与Setuptools也有很多冲突。

  • virtual-python也是virtualenv的前身。它只使用软链接,因此不能在Windows上工作。而且它的链接会覆盖标准模块和全局环境的 site-packages ,因此无法使用安装在全局环境下的 site-packages 的第三方模块

因为virtual-python的软链接只是覆盖了全局环境下的标准模块的一部分,因此在windows上,可以用拷贝模块文件的方式来使用virtual-python。同时,它会创建一个空的 site-packages ,并把全局环境的 site-packages 指向该目录,因此更新是分别跟踪记录的(这块wrongway也不理解是什么意思,或许作者是想说要两个目录都注意要更新吧)。virtual-python也会自动安装Setuptools,从而省去了从网上手动安装这一步。

  • zc.buildout 不会以上述方式创建隔离的Python环境,但它通过定义配置文件,使用非常特殊的模块,配置脚本达到了相似的效果。做为一个可定义的系统,它是非常容易复制和管理的,但是比较难以改写。 zc.buildout 可以安装非Python的系统(比如数据库服务器或是Apache实例)

强烈 建议任何人开发或部署应用时都应该上述工具中的某一款