什么是正式的“首选”的方式来安装系统pip和virtualenv?

难道这是人们似乎最经常推荐的吗?

$ sudo apt-get install python-setuptools $ sudo easy_install pip $ sudo pip install virtualenv 

或者,我从http://www.pip-installer.org/en/latest/installing.html获得 :

 $ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py $ python virtualenv.py my_new_env $ . my_new_env/bin/activate (my_new_env)$ pip install ... 

或者完全不同的东西?

如果你可以安装最新的Python(2.7.9及更高版本),Pip现在已经捆绑在一起了。 请参阅: https : //docs.python.org/2.7//installing/index.html
如果不 :
更新(从发行说明):

从v1.5.1开始,在运行get-pip.py之前,pip不需要setuptools。 另外,如果setuptools(或者distribute)还没有安装,get-pip.py会为你安装setuptools。

我现在运行常规:

 curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python 

以下是正式的安装说明: http : //pip.readthedocs.org/en/latest/installing.html#install-pip

编辑2013年7月25日:
更改了setuptools安装的URL。

编辑10-Feb-2014:
删除setuptools安装(谢谢@Ciantic)

编辑26-Jun-2014:
更新url(谢谢@LarsH)

编辑1-Mar-2015:
Pip现在与Python捆绑在一起

http://www.pip-installer.org/en/latest/installing.html实际上是这个问题的标准答案。;

具体而言,系统范围的指示是:

 $ curl -O http://python-distribute.org/distribute_setup.py $ python distribute_setup.py $ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py $ python get-pip.py 

问题中引用的部分是virtualenv指令,而不是全系统指令。 easy_install指令已经存在了更长的时间,但是没有必要再这样做了。

这个答案来自Twitter上的@webology:

 $ sudo apt-get install python-setuptools $ sudo easy_install pip $ sudo pip install --upgrade pip virtualenv virtualenvwrapper 

我的补充说明:

在Ubuntu 12.04上,我只使用包pipe理器就有了好运气:

 sudo apt-get install python-pip virtualenvwrapper 

没有首选的方法 – 一切取决于你的需求。 通常,无论出于何种原因,您都需要在系统上安装不同的Python解释器。 在这种情况下,您需要为每个解释器分别安装这些东西。 除此之外:我更喜欢自己安装东西,而不是依赖于预先打包的东西,有时会导致问题 – 但这只是一个可能的opionion。

这个问题确实没有一个“答案”,但肯定有一些有用的概念可以帮助你做出决定。

在你的用例中需要回答的第一个问题是“我想使用系统Python吗? 如果你想使用与你的操作系统分布的Python,那么使用apt-get安装方法可能会很好。 尽pipe如此,根据操作系统分发方法,您仍然需要提出更多的问题,例如“我是否想要安装此软件包的多个版本? 如果答案是肯定的,那么使用类似apt的东西可能不是一个好主意。 Dpkg几乎只会解压文件系统根目录下的一个文档,所以由软件包维护人员来确保软件包在很less的假设下安全地安装。 在大多数debian软件包的情况下,我会假设(有人可以随时纠正我),他们只是解压缩,并提供一个顶级的软件包。

例如,说软件包是“virtualenv”,你最终将/usr/lib/python2.x/site-packages/virtualenv 。 如果你使用easy_install安装,你会得到类似/usr/lib/python2.x/site-packages/virtualenv.egg-link东西,可能指向/usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg这可能是一个目录或压缩的蛋。 点子虽然没有使用鸡蛋,但是会将顶层包直接放在lib目录中。

我可能不在路上,但重点是每种方法都考虑到不同的需求。 这就是为什么像virtualenv这样的工具是有帮助的,因为它们允许你对你的Python库进行沙盒处理,这样你就可以有任何你需要的库和版本的组合。

Setuptools还允许安装软件包,这意味着没有单独的dule_name.egg-link创build。 要导入这些包,你需要使用pkg_resources和__import__函数。

回到原来的问题,如果您对系统python感到满意,并计划使用virtualenv和pip为不同的应用程序构build环境,那么使用apt-get在系统级别安装virtualenv和/或pip似乎是完全合适的。 但要注意的一点是,如果你打算升级你的发行版Python,如果你链接回你的系统网站包,这可能会对你的virtualenvs产生影响。

我还应该提到,这些select都不是天生比其他选项好。 他们只是采取不同的方法。 使用系统版本是安装Python应用程序的绝佳方法,但是使用Python开发它可能是一个非常困难的方法。 简单的安装和setuptools在没有virtualenv的世界是非常方便的,但是如果你需要使用同一个库的不同版本,那么它也变得相当笨拙。 Pip和virtualenv的行为更像一个虚拟机。 而不是照顾安装的东西,你只是创造一个全新的环境。 这里的缺点是30多个virtualenvs后来你可能已经用尽了相当一部分的磁盘空间,混乱了你的文件系统。

正如你所看到的,用很多选项很难说哪种方法可以使用,但是对你的用例进行一些调查,你应该能够find一个可行的方法。

由于virtualenvs默认包含pip,所以我几乎从不在全局安装pip。 我所做的最终看起来更像是:

 $ sudo apt-get install python-setuptools $ curl -O http://python-distribute.org/distribute_setup.py $ sudo python distribute_setup.py $ sudo easy_install virtualenv 

然后,我继续安装并设置virtualenvwrapper到我喜欢和离开我去。 看看杰里米·安福特(Jeremy Avnet)的虚拟卷饼也是值得的:

https://github.com/brainsik/virtualenv-burrito

@ericholscher在推特上说,“官方文件中的一个..”

这是一个伟大的观点,你应该做的文件说。

http://www.pip-installer.org/en/latest/installing.html官方的pip安装说明中引用:;

 $ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py $ python virtualenv.py my_new_env $ . my_new_env/bin/activate (my_new_env)$ pip install ... 

要在mac(osx)上安装pip,下面的一行代码对我很有帮助:

 sudo easy_install pip 

做这个:

 curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python get-pip.py pip install virtualenv 

看到

在Raspbian中,甚至不需要提及python2.7 。 事实上,这是安装pip的最好方法,如果python版本小于2.7.9。

 curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python 

感谢@ tal-weiss

我使用get-pip和virtualenv-burrito来安装所有这些。 不知道是否需要python-setuptools。

 # might be optional. I install as part of my standard ubuntu setup script sudo apt-get -y install python-setuptools # install pip (using get-pip.py from pip contrib) curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py # one-line virtualenv and virtualenvwrapper using virtualenv-burrito curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash 

从发行版软件包开始,您可以使用:

 sudo apt-get install python-virtualenv 

它可以让你创buildvirtualenvs,或者

 sudo apt-get install python{,3}-pip 

它可以让你安装任意软件包到你的主目录。

如果你已经习惯了virtualenv,那么第一个命令会给你所有你需要的东西(记住,pip是捆绑在一起的,将被安装在你创build的任何虚拟环境中)。

如果你只是想安装包,第二个命令给你你所需要的。 使用像这样的点子:

 pip install --user something 

并把类似的东西

 PATH=~/.local/bin:$PATH 

在你的~/.bashrc


如果你的发行版是古老的,你根本不想使用它的包(可能除了Python本身),你可以下载virtualenv,作为压缩包或独立的脚本:

 wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py chmod +x ~/bin/virtualenv 

如果你的发行版更具有stream血性,Python3.3内置了类似virtualenv的function:

 python3 -m venv ./venv 

这样跑得更快,但是setuptools和pip不包括在内。

在Debian上,最好的办法是

sudo apt-get install python-pip

前一种方法很好。 我能看到的唯一的问题是,你可能会得到一个老版本的setuptools(如果apt库没有保持最新的..