如何在Windows上安装pip?

2748

pipeasy_install 的替代品。但是在Windows上,我应该使用 easy_install 来安装 pip 吗?有没有更好的方法?


23
从PyCon 2011: http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-reverse-engineering-ian-bicking-s-brain-inside-pip-and-virtualenv-4899496这个不太好意思的秘密是,pip只是easy_install的包装器 :) - Civilian
10
就像apt-get在核心上使用dpkg一样,但这并不会使它变得无用! - Liam Dawson
10
Ruby自带Gem,而Nodejs自带Npm,这使得用户可以在使用时享受完整的包管理功能。我个人很羡慕这一点。 - Colonel Panic
3
这是在Stackoverflow上带有Windows标签的最受欢迎的问题。我很高兴pip现在已经随Python一起提供了。 - Cody Piersall
3
对于最近版本的Python2和Python3,您只需使用python -m ensurepip即可。 - ccpizza
显示剩余4条评论
40个回答

1942

Python 3.4+ 和 2.7.9+

好消息!Python 3.4(发布于2014年3月)和Python 2.7.9(发布于2014年12月)都自带Pip。这是任何Python版本中最好的功能,它使得社区的丰富库对每个人都可用。新手不再因为复杂的设置而被排除在使用社区库之外。通过提供一个软件包管理器,Python加入了Ruby, Node.js, Haskell, Perl, Go等几乎所有其他主流开源社区语言。感谢你,Python。

如果你发现pip不可用,只需运行ensurepip即可。
  • On Windows:

    py -3 -m ensurepip
    
  • Otherwise:

    python3 -m ensurepip
    
当然,这并不意味着Python包管理问题已经解决。使用体验仍然令人沮丧。我在Stack Overflow的问题Does Python have a package/module management system?中讨论了这个问题。
Python 3 ≤ 3.3和2 ≤ 2.7.8
Python违背了其'batteries included'的座右铭,没有提供包管理器。更糟糕的是,直到最近安装Pip还具有讽刺意味的困难。
官方说明
根据https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip
下载get-pip.py,注意将其保存为.py文件而不是.txt。然后,在命令提示符下运行它:
python get-pip.py

您可能需要管理员命令提示符才能执行此操作。请参考 以管理员身份启动命令提示符(Microsoft TechNet)。

这将安装pip软件包,其中(在Windows中)包含...\Scripts\pip.exe,该路径必须在PATH环境变量中才能从命令行使用pip(请参见“备用说明”的第二部分,以将其添加到您的PATH中)。

备用说明

官方文档告诉用户从源代码安装Pip及其每个依赖项。对于有经验的用户来说,这很繁琐,对于新手来说则非常困难。

为了我们的方便,Christoph Gohlke为流行的Python软件包准备了Windows安装程序(.msi)。他为所有Python版本构建安装程序,包括32位和64位。您需要:

  1. 安装setuptools
  2. 安装pip

对我来说,这个命令在 C:\Python27\Scripts\pip.exe 安装了 Pip。在你的电脑上找到 pip.exe,然后将它所在的文件夹(例如 C:\Python27\Scripts)添加到你的路径中(开始 / 编辑环境变量)。现在你应该能够从命令行运行 pip。尝试安装一个包:

pip install httpie

希望这能帮到你!以下是常见问题的解决方案:

代理问题

如果你在办公室工作,可能会使用HTTP代理。如果是这样,请设置环境变量http_proxyhttps_proxy。大多数Python应用程序(和其他免费软件)都会遵守这些规定。示例语法:

http://proxy_url:port
http://username:password@proxy_url:port

如果你非常不幸,你的代理可能是微软NTLM代理。免费软件无法处理。唯一的解决方案是安装一个友好的免费软件代理,将其转发到恶意代理。http://cntlm.sourceforge.net/

无法找到vcvarsall.bat

Python模块可以部分地用C或C++编写。Pip尝试从源代码编译。如果您没有安装和配置C/C++编译器,则会看到此加密错误消息。

错误:无法找到vcvarsall.bat

你可以通过安装C++编译器来解决这个问题,例如MinGWVisual C++。微软实际上为Python专门提供了一个编译器。或者尝试Microsoft Visual C++ Compiler for Python 2.7
通常来说,检查Christoph的网站来获取你的软件包更容易。

3
@MikeMcMahon 我也遇到过这个问题。在你的路径中将 Python 放在 Perl 的前面,这样输入 pip 就会使用 Python 的包管理器。 - Colonel Panic
6
我并不需要做任何额外的工作,只需按照http://www.pip-installer.org/en/latest/installing.html上的说明操作即可(基本上只需输入“python ez_setup.py”,然后输入“python get-pip.py”)。 - CaptainCodeman
3
这可能是一个愚蠢的问题。我在 Windows 命令提示符上输入了“python get-pip.py”,但是出现了“python 不是内部或外部命令,也不是可运行的程序或批处理文件”的错误。我做错了什么吗?我安装了 Python 2.7.8。我需要更改目录吗?谢谢。 - Andrew
2
@Andrew,你需要将例如C:\Python27添加到系统PATH中(这是命令提示符查找程序的位置),请参考http://superuser.com/a/143121/62691。 - Colonel Panic
16
在Windows系统中启动“内置”的pip,您需要使用命令python -m pip - powtac
显示剩余19条评论

310

-- 已过时 -- 不要使用此处描述的setuptools,而是使用distribute。--
-- 已过时 #2 -- 使用setuptools,因为distribute已被弃用。

正如您所提到的,pip并不包括一个独立的安装程序,但是您可以使用其前身easy_install来安装它。

所以:

  1. 从这里下载最新的pip版本:http://pypi.python.org/pypi/pip#downloads
  2. 解压它
  3. 下载Windows的最新易安装程序:(http://pypi.python.org/pypi/setuptools底部下载.exe)。安装它。
  4. 将未压缩的pip文件夹内容复制到C:\Python2x\文件夹中(不要将整个文件夹复制到其中,只需复制内容),因为python命令在C:\Python2x文件夹外面无法工作,然后运行:python setup.py install
  5. 将您的pythonC:\ Python2x \ Scripts 添加到路径中

完成了。

现在您可以像在Linux中一样使用pip install package轻松安装软件包 :)


1
当运行命令 "python setup.py install" 时,如果出现 "error: pip.egg-info\PKG-INFO: Permission denied" 错误,则尝试移除未压缩的 pip 目录上的只读属性。 - Yoo Matsuo
13
如果您安装64位版本的Python,setuptools将无法检测到您的Python可执行文件。不过我在这里找到了一些二进制文件可以做到这一点(非官方):http://www.lfd.uci.edu/~gohlke/pythonlibs/ - Chris
在第4步中,您不需要将pip文件夹内容复制到c:\python2x文件夹中。您只需将c:\python2x添加到PATH环境变量中,或者在运行Python时直接使用完整路径即可。 - Derek Veit
2
作为第四步的替代,可以直接从pip所在的地方运行setup.py,例如从Firefox C:\Users\Tony\Downloads\pip-1.2.1\pip-1.2.1。 - Pyderman
4
截至2016年2月,这种方法仍然非常适用于在Windows上安装Python 2.6的pip(然后是nose!)。事实上,使用Gohlke的二进制文件已经不再是一个选项,因为他把它们全部替换成了wheels。 - gaborous
显示剩余6条评论

225

2014年更新:

1)如果您已经安装了Python 3.4或更高版本,则pip已包含在Python中,并且应该已经在您的系统上正常工作。

2)如果您运行的是低于Python 3.4的版本,或者由于某些原因未安装Python 3.4,则可能需要使用pip的官方安装脚本get-pip.py。pip安装程序现在会为您获取setuptools,并且无论架构(32位或64位)都可以工作。

安装说明详见此处,其中涉及以下步骤:

要安装或升级pip,请安全下载get-pip.py

然后运行以下命令(可能需要管理员权限):

python get-pip.py

要升级现有的setuptools(或distribute),请运行pip install -U setuptools 为了保存历史记录,我将保留旧的两组说明。
旧答案:
对于64位的Windows版本-64位Windows + Python以前需要单独的安装方法,因为ez_setup,但我已经在运行32位Python和64位Python的64位Windows上测试了新的分发方法,您现在可以对所有版本的Windows / Python 2.7X使用相同的方法:
使用distribute的旧方法2:
  1. 下载distribute - 我将其放在C:\Python27\Scripts中(如果不存在,可以创建Scripts目录)。
  2. 打开命令提示符(如果你不使用PowerShell,可以在Windows上尝试conemu2),并切换(cd)到你已经下载了distribute_setup.py的目录。
  3. 运行distribute_setup:python distribute_setup.py(如果你的python安装目录没有添加到你的path中,这将无法工作 - go here for help)。
  4. 将当前目录更改为你的Python安装的Scripts目录(C:\Python27\Scripts)或将该目录以及Python基本安装目录添加到你的%PATH%环境变量中。
  5. 使用新安装的setuptools安装pip:easy_install pip
最后一步不起作用,除非您在easy_install.exe所在的目录中(对于Python 2.7,默认情况下为C:\Python27\Scripts),或者将该目录添加到您的路径中。 旧方法1使用ez_setup: 从setuptools页面下载ez_setup.py并运行它;它将为您下载适当的.egg文件并安装它。(目前,由于distutils安装程序兼容性问题,提供的.exe安装程序不支持Windows的64位Python版本。)
之后,您可以继续以下步骤:
1.将c:\ Python2x \ Scripts添加到Windows路径中(将x替换为您已安装的实际版本号) 2.打开一个新的DOS提示符。从那里运行easy_install pip

4
安装顺序为:easyinstall,然后是pip,再是virtualenv,接着是virtualenvwrapper,最后配置独立环境。在这个过程中需要修改脚本以处理代理问题... 哎呀我头疼。 - nicolas
@nicolas 是的,easyinstall只是setuptools的过时接口。Pip非常棒,而virtualenv提供了一种控制方式,你在许多其他语言中都无法获得,除非使用更多hackish策略;perl是唯一可比较的例外。Ruby有gemsets,但为了轻松地交换Rubies,建议使用rbenv或rvm - 两者对我来说始终感觉有些hackish(尽管一旦正确设置,它们工作得很好)。 - AndrewPK
2
这个确切的过程可以通过Windows版pip自动完成。 - Pierre Carbonnelle
2
+1,对于像我这样的新手的帮助提示:在Windows路径环境变量中不要按字面输入“python2x”。请将x替换为您所拥有的Python版本,例如python27。 - dbjohn
我想指出,在Windows中我不得不使用“python -m pip”来使用该模块。 - Mouseroot

215

2016年以后的更新:

这些答案已经过时或者说话冗长且难以理解。

如果你使用的是Python 3.4+ 或者 2.7.9+,则Windows系统默认会安装它。否则,简单来说:

  1. 下载pip安装程序:https://bootstrap.pypa.io/get-pip.py
  2. 如果你很谨慎,可以检查文件以确保它不包含恶意代码(必须进行b64解码)。
  3. 在下载文件夹中以管理员身份打开控制台并运行get-pip.py。或者,右键点击其在资源管理器中的图标,选择“以管理员身份运行...”。

新的二进制文件pip.exe(和已弃用的easy_install.exe)将会在"%ProgramFiles%\PythonXX\Scripts"文件夹(或类似的文件夹)中找到,这通常不在你的PATH变量中。我建议将其添加进去。


文件的MD5校验和: get-pip.py=60a3d165e93999895e26b96681b65090 setuptools-1.3.2.tar.gz=441f2e58c0599d31597622a7b9eb605f - Joris
1
从pip 1.5.1(2014年1月)开始,无需提前安装ez_setup/setuptools/distribute。如果需要,get-pip将获取所需的要求以及pip本身。 - matt wilkie
1
Python打包的过去和现在的良好概述,截至2016年8月:https://glyph.twistedmatrix.com/2016/08/python-packaging.html - Dylan Hogg
@Gringo,get-pip.py 报错 "RuntimeError: 需要 Python 3.4 或更高版本"。 - Gaurav
@gaurav 您使用的是哪个Python版本?最新的pip可能不支持2.6或3.0到3.3,因为它们相对较古老。也许旧版本的pip会支持。 - Gringo Suave
@GringoSuave Python 3.3 - Gaurav

52

Python 3.4于2014年3月发布,已经默认集成了 pip
http://docs.python.org/3.4/whatsnew/3.4.html
因此,自Python 3.4发布以来,在Windows上安装pip的最新方法是只需安装Python即可。

推荐的使用方式是将其作为模块调用,特别是在安装了多个Python发行版或版本时,以确保软件包安装到正确的位置:
python -m pip install --upgrade packageXYZ

https://docs.python.org/3/installing/#work-with-multiple-versions-of-python-installed-in-parallel


2
请注意,这也适用于Python 2.7.9。 - Roberto
Python 2.x 是遗留版本,Python 3.x 是该语言的现在和未来,参考 Python2orPython3 - matth
我安装了Python 3.4.4,按照这个答案的路径找到了pip3.exe,但在cmd中“pip”仍然无法识别。有人能帮忙吗? - annena
在命令提示符中,cd到存放pip3.exe的目录并执行例如pip3 install -U sphinx - matth
6
Python新版本已经默认集成pip作为一个模块,而不是安装可执行文件(至少在列出路径中不是)。在Windows 10和Python 3.6.1上,我成功地在Windows命令提示符中使用py -m pip install xxx - jkt123
显示剩余2条评论

48

当我需要使用Windows时,我会使用ActivePython,它会自动将所有内容添加到您的PATH中,并包含一个名为PyPM的软件包管理器,提供了二进制软件包管理功能,使安装软件包更快捷、简单。

pipeasy_install并不完全相同,因此有些东西可以通过pip获取,但不能通过easy_install获取反之亦然

我的建议是下载ActivePython社区版,不必担心在Windows上设置Python所需的各种问题。然后,只需使用pypm即可。

如果你想使用pip,则需要在ActiveState安装程序中勾选PyPM选项。安装完成后,只需要注销并重新登录,pip就可以在命令行中使用了,因为它包含在ActiveState安装程序的PyPM选项中,并且路径已经由安装程序为您设置好了。 PyPM也可用,但您不必使用它。


4
需要注意的是,ActivePython还包括pip和easy_install。PyPM是一个二进制包管理器,而pip/easy_install本质上是源包管理器。请参阅http://code.activestate.com/help/faq/#how-is-pypm-related-to-pip-and-easy_install。 - Sridhar Ratnakumar
@Rafe Kettlet - 当我尝试在Activepython中安装pip时,它会出现这个错误。 - Jitendra Vyas
1
@Jitendra - ActivePython已经为您安装了pip,因此无需在之后再次安装它。 - mit
这确实是Windows上唯一明智的解决方案。不是因为PyPM,而是因为它带有pip并自动将东西添加到PATH中。 - Dave Halter
我只能支持这个解决方案,多年来一直很高兴使用ActivePython。 - Dr. Jan-Philip Gehrcke

42

现代的方法是使用 Windows 的包管理器 Chocolatey

安装完成后,您只需打开命令提示符并运行以下三个命令,即可安装 Python 2.7、easy_install 和 pip。它会自动检测您是否在 x64 或 x86 Windows 上。

cinst python
cinst easy.install
cinst pip

Chocolatey Gallery上的所有其他Python包可以在这里找到。


如果Python已经安装了呢?这让我噩梦连连。因为Python已经通过其他方式安装了,尝试使用cinst pip仍然会出现错误。 - DevPlayer
9
Chocolatey在依赖方面似乎不太健壮。目前编写时,"cinst pip"命令假设已安装easy_install,但这并非总是如此。请注意,本文仅涉及翻译,不包括解释或其他内容。 - fatuhoku
我已经编辑了问题,为了使其正常工作,您需要先安装 easy_install,然后才能获取 pip。您可以执行 cinst easy.install 安装。 - Philipp Gayret
2
刚试了一下。"cinst easy.install" 失败了,但是 "cinst pip" 安装了 easy.install。顺便说一句,我用的是 Windows 10。 - Kevin Driedger
@Philipp 如果您运行cinst pip,它将自动调用easy.install - IgorGanapolsky
显示剩余2条评论

35

2015年3月更新

Python 2.7.9及以后版本(在Python 2系列中),以及Python 3.4及以后版本默认已包含pip,因此您可能已经拥有pip。

如果没有,请在命令提示符上运行此单行命令(可能需要管理员访问权限):

python -c "exec('try: from urllib2 import urlopen \nexcept: from urllib.request import urlopen');f=urlopen('https://bootstrap.pypa.io/get-pip.py').read();exec(f)"

它将安装 pip。如果没有安装 Setuptoolsget-pip.py 也会为您安装它。

如评论所述,上述命令将从 GitHub 的 Pip 源代码仓库下载代码,并在您的环境中动态运行它。因此,请注意这是使用 Python 自身的单个命令快捷地执行下载、检查和运行步骤的方法。如果你信任 Pip,请毫不犹豫地继续

请确保您的Windows环境变量PATH包括Python的文件夹路径(对于Python 2.7.x默认安装: C:\Python27C:\Python27\Scripts,对于Python 3.3x:C:\Python33C:\Python33\Scripts,以此类推)。


这应该可以工作,但值得注意的是,如果没有专业知识或不费心检查url文件就执行这样的命令可能会非常危险。 - Gringo Suave
我认为简单性值得冒险。我们在谈论python-distribute.org上的一个黑客吗?sublime package control有一个类似的方法。 - Fernando Macedo
2
是的,我已经检查了分发的URL,目前看起来没问题。问题在于普通情况下,没有经验的人根据论坛上的建议运行远程可执行文件。至少应该带有最小的警告提示。 - Gringo Suave
我同意你的看法,真正的问题在于谁能在阅读帖子后执行任意代码。问题是:你能相信我吗?我会更新答案以通知正在执行的操作流程。我认为投票可以被用作“信任过滤器”。 - Fernando Macedo
这是一个纯Python版本的 @h--n 使用curl的答案,以及 Fernando 上面提到的urlib示例。它尝试适应py2或3,并发出有关执行任意代码的使用警告:https://gist.github.com/maphew/5393935 - matt wilkie
显示剩余2条评论

28

安装程序

我已经为 distributepip 分别构建了 Windows 安装程序。这样就可以使用 pip 而无需使用 easy_install 进行引导或保存并运行 Python 脚本:

在 Windows 上,只需从上面的链接下载并安装 distribute,然后再安装 pip。上面的 distribute 链接包含存根 .exe 安装程序,目前仅支持 32 位。我没有测试其对 64 位 Windows 的影响。

在 Windows 上构建

为新版本重复此过程并不困难,我在这里提供参考。

构建 distribute

为了获得存根 .exe 文件,您需要拥有 Visual C++ 编译器(它似乎也可以使用 MinGW 进行编译)。

hg clone https://bitbucket.org/tarek/distribute
cd distribute
hg checkout 0.6.27
rem optionally, comment out tag_build and tag_svn_revision in setup.cfg
msvc-build-launcher.cmd
python setup.py bdist_win32
cd ..
echo build is in distribute\dist

构建 pip

git clone https://github.com/pypa/pip.git
cd pip
git checkout 1.1
python setup.py bdist_win32
cd ..
echo build is in pip\dist

啊,我错过了需要手动编译launcher.c的事情...进行了调整并重新构建了distribute - 这意味着这只适用于win32... - David Fraser

23

以下适用于Python 2.7。保存此脚本并启动它:

https://raw.github.com/pypa/pip/master/contrib/get-pip.py

安装 Pip,然后将路径添加到您的环境中:

C:\Python27\Scripts

最后

pip install virtualenv

同时您需要安装 Microsoft Visual C++ 2008 Express 以获得好的编译器,避免在安装包时出现此类消息:

error: Unable to find vcvarsall.bat

如果你使用的是64位版本的Windows 7,那么你可以阅读64位Windows7上安装Python时出现的问题,以成功安装Python可执行包(涉及注册表条目的问题)。


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