如何在 macOS 或 OS X 上安装 pip?

1672

昨天我花费大部分时间搜索安装Python包管理器pip的明确答案,但是我找不到一个好的解决方案。

那么我应该如何安装呢?

21个回答

3467

26
如果您在代理后面,请确保 http_proxy 和 https_proxy 设置正确,然后使用 sudo 的 '-E' 选项:sudo -E easy_install pip。 - Neil Schaper
20
已安装 /Library/Python/2.7/site-packages/pip-6.0.6-py2.7.egg -- 我的 Python3 安装怎么样?这是否意味着 pip 只使用了我的 Python2 安装? - temporary_user_name
51
额外警告:当已安装基于Homebrew的Python并在PATH中较早出现(例如更改/etc/paths时)时,请勿运行此命令:否则它将使用错误的Python安装pip并具有root权限。 - acidjunk
12
在 https://pypi.python.org/simple/ 下载时出现错误 #不太容易:[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c: 590) - 一些软件包可能无法找到! 找不到 pip 的合适版本,没有本地软件包或下载链接。 - htafoya
8
@htafoya 我也遇到了同样的错误。这个方法适用于我。使用以下命令:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && sudo python get-pip.py - user2975337
显示剩余23条评论

771

⚡️ TL;DR — 一行解决方案。

对于Python v2.7(截至2021年,Mac上默认版本),运行以下命令:

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python
在Python v3中运行以下命令。
curl https://bootstrap.pypa.io/get-pip.py | python

或者,如果您已将其安装为Python 3,则是以下内容

curl https://bootstrap.pypa.io/get-pip.py | python3

你说要另一个GIF图像?请看这里!

GIF install pip


以下方法曾在2019年及以前可行:

你所需做的仅是:

sudo easy_install pip

2019: ⚠️easy_install已被停用。请参考下面的方法2以获取最佳安装方式!

详细信息:

⚡️ 好的,我已经阅读了上述给出的解决方案,但是这里有一个简单的解决方案来安装pip

macOS已经安装了Python环境。但是,请确保您安装了Python,打开终端并运行以下命令。

python --version
如果这个命令返回一个版本号,那就意味着已经安装了Python。这也意味着你已经可以使用 easy_install 了,因为你正在使用 macOS 或 OS X 操作系统。
ℹ️ 现在,你需要运行以下命令。
sudo easy_install pip

接下来,pip 将被安装,您将能够使用它来安装其他软件包。

P.S. 我最终写了一篇关于此的博客文章。技巧:如何在 MacOS 或 OS X 上安装 pip?


✅ 方法 #2:两行解决方案

easy_install 已弃用。请改用get-pip.py

下载并安装 PIP

curl https://bootstrap.pypa.io/get-pip.py | python

5
错误:由于环境错误无法安装软件包:[Errno 13] 权限被拒绝:'/Library/Python/2.7/site-packages/pip'。请考虑使用--user选项或检查权限。 - 2540625
3
尝试运行python get-pip.py后,我遇到了错误:由于EnvironmentError,无法安装软件包:[Errno 13]权限被拒绝:'/Library/Python/2.7/site-packages/pip-19.1.1.dist-info/RECORD'。建议使用--user选项,或检查权限设置。 - Jonas
1
这是一个不错的一行代码:curl https://bootstrap.pypa.io/get-pip.py | python - Alex V
2
你用什么制作 GIF 的? - Nishchit
1
请注意:MacOS 上的“系统”Python 仍然是 Python2。如果您想为该 Python 安装模块,您需要使用 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python。(因为另一个是针对 Python3 的!) - GhostCat
显示剩余11条评论

554

我很惊讶没有人提到这一点——自从2013年起,Python本身就能够安装pip,不需要任何外部命令(也不需要互联网连接)。

sudo -H python -m ensurepip

这将创建一个类似于 easy_install 的安装。


3
太好了!我的系统找不到easy-install,因此其他解决方案无法运行。 - buzzard51
1
这个在防火墙后面运行成功了,而其他的都失败了。谢谢! - Floris
7
如果你安装了多个版本的Python,需要指定一个特定的版本才能使用pip,这将会有所帮助。 - Teepeemm
2
@user3.1415927 你可以使用/path/to/your/python -m pip <command> - felixphew
6
最佳解决方案,在 MacOS 上非常有效。easy_install 经常会出现下载错误。 - eXc
显示剩余7条评论

533

你可以在 OS X 上通过 Homebrew 安装它。为什么要使用 Homebrew 安装 Python?

OS X 自带的 Python 版本适合学习,但不适合开发。与官方当前稳定版本的 Python 发布相比,随 OS X 一起发布的版本可能已经过时了。(来源

Homebrew 是 OS X 上的软件包管理器。有关更多详细信息,请访问 Homebrew 页面。安装 Homebrew 后,运行以下命令安装最新版本的 Python、Pip 和 Setuptools:

brew install python

19
请注意,如果您使用Homebrew,那么最终将使用您自己的Python,而不是系统自带的Python。如果您想使用wxPython,那么这将是一条通向地狱的道路... - GreenAsJade
3
我喜欢这个解决方案,因为它不需要使用 "sudo"。让我们不要搞乱系统的 Python。 - justrhysism
4
使用Homebrew安装Python也会自动安装pip。所有内容都是本地安装,不需要使用sudo - joshlsullivan
90
如果你使用brew安装了Python,但是pip仍然无法执行,可能需要进行重新链接。操作如下:brew unlink python && brew link python - Christian Long
6
在我的情况下,安装了Python 2和3之后,我注意到在/usr/local/bin中没有默认的“python”符号链接(因此“python”仍然指向系统python)。在/usr/local/bin中快速创建所选择的brew python的符号链接即可解决问题,但是如果您希望在键入“python”时使用Homebrew安装的python,请记住这一点。除此之外,“python2”/“pip2”(和/或“python3”/“pip3”)适用于最新的brew安装的python版本。 - MartyMacGyver
显示剩余15条评论

141

在Mac上:

  1. 安装 easy_install

curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python
  • 安装pip

    sudo easy_install pip
    
  • 现在,您可以安装外部模块。例如:

    pip install regex   # This is only an example for installing other modules
    

  • 以上解决方案都引发了 DistributionNotFound 异常。这个解决方案完美地解决了问题。 - stuckj
    我在使用easy_install安装后不得不重新启动终端,而且在运行pip install时还需要以SUDO身份运行。但是在那之后,一切都完美运行。 - Sindri Þór
    5
    最新的OSX已经预装了easy_install,如果调用 curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python,会破坏你的设置!如果你已经拥有easy_install,请不要安装easy_setup。在执行该命令后,我花了一个小时来修复我的设置(感谢https://dev59.com/Z2025IYBdhLWcg3wbVan)。 - Sergiy Sokolenko
    1
    对于直接将curl管道传递到解释器中的做法进行贬低...尽管这种做法很常见,但我不喜欢它带来的安全隐患。(此外,我认为这个问题有更好的答案。) - lindes
    这些也是亚马逊的官方说明 - https://docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html - chrismarx
    在第二步中出现了“ImportError: cannot import name ContextualZipFile”的错误,请改用“sudo -H python -m ensurepip”。 - YH_WU

    124

    macOS v10.15(卡特琳娜)

    安装 Homebrew

    mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
    

    添加路径:

    sudo nano  ~/.bash_profile
    

    添加这一行:

    export PATH="$HOME/homebrew/bin:$PATH"
    

    安装 Python 3:

    brew install python
    

    这个 Python (v3) 也会安装pip3。为了只使用 'pip',需要添加一个别名:

    sudo nano  ~/.bash_profile
    

    添加这行:

    alias pip=pip3
    

    macOS v10.14(莫哈韦)

    macOS 自带 Python 2,但不自带pip。建议使用 Homebrew 管理 Python。在此之前,您必须安装 Homebrew

    安装 Python 2:

    brew install python
    

    警告:对于现代 macOS(2019年及以后版本),这会安装 Python 3,如果您真的需要安装 Python 2,请执行:brew install python@2

    安装 Python 3:

    brew install python3
    

    Python 3

    如果您安装了Python 3,pip将会自动安装。

    brew install python3
    

    截至2019年,现在使用pip版本3,请使用pip3。 或者您可以执行:python3,使用版本3。当您使用pip3安装软件包时,它们将与Python 2分开。

    对于旧版本:您只需要升级pip,但在此之前,您需要创建一个虚拟环境来使用Python 3。您可以使用项目文件夹或任何文件夹:

    python3 -m venv venv
    source venv/bin/activate
    pip install --upgrade pip
    

    检查版本:

    pip -V
    python --version
    

    2019年之后:

    pip3 -V
    python3 --version
    

    关闭环境:

    deactivate
    

    对我来说,“sudo python get_pip.py”很好用,因为在 OS X 上 Python 已经被安装了! - Abhishek Ghosh
    如果您想使用更新版本的Python,那么这可能是一个不错的选择,因为Mac默认安装的Python版本是2.7.x。您可以通过将上述第二步中的python更改为python3来实现此目的。另外需要注意的是,brew安装的Python也会安装pip,并提供有关升级/使用pip的信息。 - Delicia Brummitt
    在El Capitan上为Python3执行以下命令:curl -O https://bootstrap.pypa.io/get-pip.py | sudo python3 get-pip.py - marw
    11
    我的pip被称为pip3 - Evan Moran
    建议如下:如果您已经有了pip3,只需将其别名设置为pip,方法如下:echo 'alias pip=pip3' >> ~/.zshrc(如果您不使用zsh,请将.zshrc更改为您的shell)。 - Liran H
    显示剩余2条评论

    90
    pip 在 OS X 上可以通过 easy_install 来安装。 在终端中输入:
    sudo easy_install pip
    

    输入密码时,请输入您的普通登录密码。 安装完成后,您应该能够像预期的那样使用 pip

    注意:这对其他Python包也适用。


    这一行代码修复了我在Mac上使用pip安装程序时遇到的_DistributionNotFound_异常问题。 (Mac OS X 10.10.4,Python 2.7) - Oliver Schafeld
    2
    我还需要运行 pip install --upgrade pip - thorr18
    pip 是否依赖于 Python 版本?我安装了 Python3,但是这个命令似乎在使用 Python2。不过 pip 已经成功安装了。 - Felix

    86
    最简单的解决方案是按照pip官网的安装说明进行操作。 基本步骤如下:
    • 下载get-pip.py。请确认通过可信链接下载该文件,因为您需要在root权限下运行脚本。
    • 运行sudo python get-pip.py
    这种方案的主要优势在于它会将pip安装到用于运行get-pip.py的Python版本中,这意味着如果您使用默认的OS X Python安装来运行get-pip.py,则会为系统提供的Python安装安装pip。 大多数在OS X上使用软件包管理器(HomebrewMacPorts)的解决方案会在软件包管理器环境中创建多余的Python安装,这可能会导致系统不一致性,因为根据您的操作需要,您可能会调用一个Python安装而不是另一个Python安装。

    我已经安装了第二个版本的Python,但是我想在我的原始/usr/bin Mac Python上安装pip。你知道我如何访问那个安装包吗?我使用了/usr/bin/python来安装pip,但是pip不在/usr/bin/中。 - Wesley
    1
    @Wesley,你是怎么得到第二个安装包的?如果你正在使用Python版本管理器,应该有一个选项可以设置你想要的Python版本,然后你就可以通过上述方法为该特定版本安装pip。 - Jorge Bucaran
    1
    这是不安全的,因为你在sudo下运行了get-pip.py,但是在你知道校验和之前,你不能保证你下载了正确的get-pip.py。更多信息请参考:https://dev59.com/yJLea4cB1Zd3GeqP46XF - Vladimir Ignatev
    2
    看起来链接的页面已经移动到 https://pip.pypa.io/en/stable/installing/,其中提到:“警告!如果您正在使用由操作系统或其他软件包管理器管理的Python安装,请小心。get-pip.py不与这些工具协调,可能会使您的系统处于不一致的状态。” - Taylor D. Edmiston
    2
    那个警告对我来说很困惑,因为使用 git-pip.py 脚本为 Apple 的原生 Python 安装 pip 是脚本存在的主要用例,而不是仅通过 homebrew 安装 Python。 - Taylor D. Edmiston

    48

    如果您同时安装了Python 2和Python 3,这是解决方案:

    python2.7 -m ensurepip --default-pip
    

    另外,如果您想要为Python 3.6安装pip:

    wget https://bootstrap.pypa.io/get-pip.py
    sudo python3.6 get-pip.py
    

    4
    需要成为针对最新版本的Python的接受答案,这样人们就不会再做旧的愚蠢操作了。 - ccpizza
    python get-pip.py - DocJ457
    非常感谢,这对我很有帮助。我有一台旧的Mac电脑并升级了系统。我尝试使用Python 2 pip安装一些pip软件包,这篇文章帮了我很多。如果不确定如何检查,请使用pip -V检查pip版本和pip freeze检查已安装的软件包。 - Wei Jing

    44

    安装单独的Python副本是一种流行的选择,尽管Python已经内置于macOS中。您需要确保使用您想要的Python副本,但好处是可以获得最新的Python版本,并在出现问题时保护系统。

    使用HomeBrew安装Python:

    brew update
    brew install python # or brew install python3
    

    现在确认我们正在使用新安装的Python进行工作:

    ls -lh `which python`
    

    应该显示一个符号链接,指向路径中包含"Cellar"的位置,如下所示:

    lrwxr-xr-x  1 chris  admin    35B Dec  2 13:40 /usr/local/bin/python -> ../Cellar/python/2.7.8_2/bin/python
    

    应该同时安装Python和Pip。您可能想通过输入以下内容来升级它:

    pip install --upgrade pip
    

    现在您已经准备好安装50000多个PyPI上的任何程序包了。

    其他注意事项

    以前,我使用get-pip.py来安装pip,但文档警告说get-pip.py不会与软件包管理器协调,可能会使您的系统处于不一致状态。 无论如何,由于从2.7.9开始,pip现在已包含在Python中,因此没有必要使用get-pip.py。

    请注意,pip并不是Python的唯一软件包管理器,还有easy_install。不要混合使用这两种管理器。

    最后,如果您同时安装了Python 2和3,pip将指向您最后安装的Python版本。养成明确使用pip2pip3的习惯,以确保新库被正确地安装在哪个Python中。

    祝您编程愉快!


    1
    实际上,python 符号链接到 python2,而 python3 符号链接到 python3... 不管哪个是最后安装的。 - Corey Goldberg
    1
    这个Homebrew文档页面解释了每个命令指向的版本:https://docs.brew.sh/Homebrew-and-Python - Albert Vila Calvo

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接