在全系统安装pip和virtualenv的官方“首选”方式是什么?

时间:2011-04-07 18:36:35

标签: python virtualenv setuptools pip easy-install

是这样的,人们似乎最常推荐的是:

$ 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 ...

还是完全不同的东西?

15 个答案:

答案 0 :(得分:89)

如果您可以安装最新的Python(2.7.9及更高版本),Pip现在已与它捆绑在一起。 见:https://docs.python.org/2.7//installing/index.html
如果不是:
更新(来自发行说明):

  

从v1.5.1开始,pip在运行get-pip.py之前不需要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。

编辑2014年2月10日:
删除了setuptools安装(感谢@Ciantic)

编辑2014年6月26日:
再次更新了网址(感谢@LarsH)

编辑2015年3月1日:
Pip现在与Python捆绑在一起

答案 1 :(得分:21)

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指令已存在更长时间,但不再需要这样做。

答案 2 :(得分:16)

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

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

我补充说明:

  • 在Mac / Windows上(如果apt repo已过时,则为Linux),您将从http://pypi.python.org/pypi/setuptools下载setuptools替换第一步
  • 在Windows上,你必须在最后一步中省略virtualenvwrapper并以某种方式手动安装它。我不知道在没有Cygwin的情况下是否有办法做到这一点,但我希望如此。

答案 3 :(得分:4)

在Ubuntu 12.04上,我使用包管理器好运:

sudo apt-get install python-pip virtualenvwrapper

答案 4 :(得分:3)

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

答案 5 :(得分:3)

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

在您的用例中需要回答的第一个问题是“我是否要使用Python系统?”如果你想使用随操作系统分发的Python,那么使用apt-get install方法可能就好了。但是,根据操作系统分发方法,您仍然需要提出更多问题,例如“我是否要安装此软件包的多个版本?”如果答案是肯定的,那么使用像apt这样的东西可能不是一个好主意。 Dpkg几乎只是解压缩文件系统根目录下的存档,因此由软件包维护者来确保软件包在很少的假设下安全地安装。在大多数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。 Pip做了类似的事情,虽然它不使用鸡蛋,而是将顶级包直接放在dule_name.egg-link目录中。

我可能不在路上,但重点是每种方法都考虑到不同的需求。这就是为什么像virtualenv这样的工具很有用的原因,因为它们允许您对Python库进行沙盒化,这样您就可以拥有所需的库和版本组合。

Setuptools还允许将软件包安装为多版本,这意味着没有创建单个mo __import__。要导入这些包,您需要使用pkg_resources和{{1}}函数。

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

我还应该提到,这些选项中没有一个本质上比其他选项更好。他们只是采取不同的方法。使用系统版本是安装Python应用程序的绝佳方法,但使用Python进行开发可能是一种非常困难的方法。简单的安装和安装工具在没有virtualenv的世界中非常方便,但是如果你需要使用相同库的不同版本,那么它也变得相当笨重。 Pip和virtualenv真的更像是一个虚拟机。您只需创建一个全新的环境,而不是注意并排安装。这里的缺点是30多个virtualenvs后来你可能已经耗尽了相当多的磁盘空间并且混乱了你的文件系统。

正如您所看到的,有很多选项很难说明使用哪种方法,但只要对您的用例进行一些调查,您就应该能够找到一种有效的方法。

答案 6 :(得分:3)

这样做:

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

答案 7 :(得分:2)

由于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的virtualenv-burrito也是值得的:

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

答案 8 :(得分:2)

@ericholscher在Twitter上说,“官方文档中的那个......”

这是一个很好的观点,你应该做文档所说的。

引用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 ...

答案 9 :(得分:2)

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

sudo apt-get install python-virtualenv

可让您创建virtualenvs或

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

允许您将任意包安装到您的主目录。

如果您已经习惯了virtualenv,第一个命令会为您提供所需的一切(请记住,pip是捆绑的,并将安装在您创建的任何虚拟环境中)。

如果您只想安装软件包,第二个命令可以满足您的需求。像这样使用点子:

pip install --user something

并添加类似

的内容
PATH=~/.local/bin:$PATH

~/.bashrc


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

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

如果您的发行版更像是前沿类型,Python3.3具有内置的类似于virtualenv的能力:

python3 -m venv ./venv

这样运行速度更快,但不包括setuptools和pip。

答案 10 :(得分:2)

要在mac(osx)上安装pip,以下一个内容对我来说很有用:

sudo easy_install pip

答案 11 :(得分:1)

我使用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

答案 12 :(得分:1)

答案 13 :(得分:1)

在Debian上,最好的方法是

sudo apt-get install python-pip

答案 14 :(得分:0)

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