安装pip和virtualenv,鸡和蛋的困境?

Ste*_*ano 7 python installation pip virtualenv

我已经使用了pip和virtualenv(实际上有时候仍然喜欢通过SVN存储库组织良好的组合,明智地使用svn:externals和动态sys.path).

但是这次安装新的服务器我想以正确的方式做事.

所以我去了pip安装页面,它说:

使用pip的推荐方法是在virtualenv中,因为每个virtualenv都会自动安装pip.这不需要root访问权限或修改系统Python安装.[...]

然后我转到virtualenv安装页面,它建议:

您可以使用pip install virtualenv安装virtualenv,或者使用pip install virtualenv == dev安装最新的开发版本.你也可以使用easy_install [...]

而pip应该取代easy_install,当然:)

当然,他们都解释了所有可供选择的安装方式.

但是...... 应该先走哪一个?应该支持全系统pip吗?

我看到了思考的主要原因,但可能还有其他人

  • 我是否希望为盒子中的所有用户提供便利,或者这是针对运行某些服务的单个用户的服务器?

如果我希望每个人都有可用的虚拟环境,我可能只需安装一个系统范围的pip(例如,使用ubuntu sudo aptitude install python-pip然后使用它来安装virtualenv sudo pip install virtualenv).

编辑另一个思考的理由:virtualenvwrapper安装说明(但不是文档)说:

注意为了使用virtualenvwrapper,您必须单独安装virtualenv.

不完全确定"分开"是什么意思(我从未注意到).

否则,哪一个应该先行,它真的会有所作为吗?

有关:

最接近的问题(和答案)是下面的第一个(特别是看@elarson答案),第二个看起来过于复杂:

但是我觉得这完全没有回答我的问题:系统范围与本地问题,但也应该pip或virtualenv首先(为什么他们将每个发送到另一个开始!!!)

sub*_*iet 6

tl; dr答案首先是VirtualEnv.你可以将其中两个用于Python版本2.x和3.x.

[编辑]

如果安装(没有安装,你只是下载并执行脚本)我真的很怀疑VirtualEnv系统范围/每用户甚至是重要的.使用VirtualEnv的重点是创建独立的开发沙箱,以便一个项目中的库不会相互冲突.例如,您可以在两个不同的虚拟环境中使用Beautiful-soup Version <4.x和Python 3.x项目使用Beautiful-soup Version 4.0来创建Python 2.x项目.

你如何在你的系统上获得VirtualEnv脚本并不重要,因为一旦你拥有它并且pip是自包含在VirtualEnv中的,那么首先获得VirtualEnv是有意义的.一旦你使用python,你将拥有许多项目,并且对于每个项目,推荐的方法是拥有一个虚拟环境,然后通过pip安装依赖项.您可以稍后执行"pip freeze> requirements.txt",然后执行"pip install requirements.txt",只需在两个系统中复制您的确切库[比如dev和production]等等......