windows - 如何在 Windows 上安装 pip?

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

最佳答案

Python 2.7.9+ 和 3.4+

好消息! Python 3.4 (2014 年 3 月发布)和 Python 2.7.9 (2014 年 12 月发布)与 Pip 一起发布。这是任何 Python 版本的最佳特性。它使每个人都可以访问社区中丰富的图书馆。新手不再因为设置困难而被排除在使用社区库之外。在使用包管理器发布时,Python 加入了 Ruby , Node.js , Haskell , Perl , Go ——几乎所有其他具有大多数开源社区的当代语言。谢谢你,Python。

如果您确实发现在使用 Python 3.4+ 或 Python 2.7.9+ 时 pip 不可用,只需执行例如:

py -3 -m ensurepip

当然,这并不意味着 Python 打包问题就解决了。经验仍然令人沮丧。我讨论这个 in the Stack Overflow question Does Python have a package/module management system? .

而且,对于所有使用 Python 2.7.8 或更早版本(社区中相当大的一部分)的人来说,都是遗憾的。没有计划将 Pip 运送给您。手动说明如下。

Python 2 ≤ 2.7.8 和 Python 3 ≤ 3.3

面对它的飞行'batteries included'座右铭,Python 没有包管理器。更糟糕的是,具有讽刺意味的是,直到最近,Pip 都难以安装。

官方说明

根据 https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip :

下载get-pip.py ,注意将其保存为 .py 文件而不是 .txt。然后,从命令提示符运行它:

python get-pip.py

您可能需要管理员命令提示符来执行此操作。关注 Start a Command Prompt as an Administrator (微软技术网)。

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

替代说明

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

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

  1. Install setuptools
  2. Install pip

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

pip install httpie

你去了(希望如此)!常见问题的解决方法如下:

代理问题

如果您在办公室工作,您可能会使用 HTTP 代理。如果是,设置环境变量http_proxy and https_proxy .大多数 Python 应用程序(和其他免费软件)都尊重这些。示例语法:

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

如果你真的不走运,你的代理可能是 Microsoft NTLM代理人。自由软件无法应付。唯一的解决方案是安装一个免费的软件友好代理,该代理转发到讨厌的代理。 http://cntlm.sourceforge.net/

找不到 vcvarsall.bat

Python 模块可以部分用 C 或 C++ 编写。 Pip 尝试从源代码编译。如果您没有安装和配置 C/C++ 编译器,您将看到这条神秘的错误消息。

Error: Unable to find vcvarsall.bat

您可以通过 installing a C++ compiler 解决此问题如MinGW或 Visual C++ .微软实际上提供了一个专门用于 Python 的软件。或者试试 Microsoft Visual C++ Compiler for Python 2.7 .

通常虽然更容易检查 Christoph's site为您的包裹。

https://stackoverflow.com/questions/4750806/

相关文章:

python - 如何克隆列表以使其在分配后不会意外更改?

python - 在一行中捕获多个异常( block 除外)

python - 如何将字符串解析为 float 或整数?

python - 使用 __init__() 方法理解 Python super()

python - 如何向字典添加新键?

python - "Least Astonishment"和可变默认参数

python - **(双星/星号)和*(星号/星号)对参数有什么作用?

python - 如何在 Python 中连接两个列表?

python - 如何通过引用传递变量?

android - 有没有办法在 Android 上运行 Python?