热门标签:
Q:

在系统范围内安装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 ...

还是完全不同的东西?

原网址
A:

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

从v1.5.1开始,pip在运行之前不需要setuptools get-pip.py。此外,如果尚未安装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

编辑25-Jul-2013:
已更改setuptools安装的URL。

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

编辑26-Jun-2014:
再次更新URL(感谢@LarsH)

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

所有回答

共 15 条

author avatar

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说明已经存在了更长的时间,但没有必要再这样做了。

author avatar

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

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

我添加的笔记:

author avatar

在Ubuntu12.04上,我已经使用了包管理器:

sudo apt-get install python-pip virtualenvwrapper
author avatar

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

author avatar

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

在您的用例中需要回答的第一个问题是"我想使用系统Python吗?"如果你想使用与你的操作系统一起分发的Python,那么使用apt-get install方法可能就好了。 根据操作系统分发方法,您仍然需要提出更多问题,例如"我是否要安装此软件包的多个版本?"如果答案是肯定的,那么使用apt这样的东西可能不是一个好主意。 Dpkg几乎只会在文件系统的根目录下打开一个存档,所以包维护者必须确保包在很少的假设下安全安装。 在大多数debian软件包的情况下,我会假设(有人可以随意在这里纠正我)他们只是untar并提供顶级软件包。

例如,假设包是"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,这可能是一个目录或压缩的鸡蛋。 Pip做了类似的事情,虽然它不使用鸡蛋,而是将顶级包直接放在lib目录中。

我可能会偏离道路,但重点是每种方法都考虑到不同的需求。 这就是为什么像virtualenv这样的工具很有帮助,因为它们允许您对Python库进行沙箱处理,以便您可以拥有所需的库和版本的任何组合。

Setuptools还允许将软件包安装为多版本,这意味着没有创建单一的module_name.egg-link。 要导入这些包,您需要使用pkg_resources和__import__函数。

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

我还应该提到,这些选择中没有一个比其他选择更好。 他们只是采取不同的方法。 使用系统版本是安装Python应用程序的一个很好的方法,但使用Python进行开发可能是一个非常困难的方法。 在没有virtualenv的世界中,Easy install和setuptools非常方便,但是如果您需要使用同一个库的不同版本,那么它也变得相当笨重。 Pip和virtualenv确实更像虚拟机。 您只需创建一个全新的环境,而不是并排安装东西。 这里的缺点是,30+virtualenvs以后您可能已经用完了相当多的磁盘空间并使您的文件系统混乱。

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

author avatar

这样做:

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

author avatar

由于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

author avatar

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

这是一个很好的观点,你应该做医生说的。

引自官方pip安装说明athttp://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 ...
author avatar

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

sudo apt-get install python-virtualenv

它可以让你创建virtualenvs,或

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

它允许您将任意软件包安装到主目录。

如果您习惯了virtualenv,第一个命令会为您提供所需的一切(请记住,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不包括在内。

author avatar

要在mac(osx)上安装pip,下面的一个班轮对我很有用:

sudo easy_install pip
author avatar

在Debian上,最好的方法是

sudo apt-get install python-pip

author avatar

在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

author avatar

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

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

相似问题