【问题标题】:pip not installing modulespip没有安装模块
【发布时间】:2016-03-03 22:29:00
【问题描述】:

根据对象。我在 Windows 7 64 位下运行 Python 2.7.10。我将 C:\Python27\Scripts 添加到我的 PATH 中,我可以运行 pip,但它无法安装模块。例如

pip install numpy

给予

Collecting numpy
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after
connection broken by 'ProtocolError('Connection aborted.', gaierror(11004,'getaddrinfo failed'))': /simple/numpy/

它会不断重试并失败一段时间,然后退出

Could not find a version that satisfies the requirement numpy (from versions:
)
No matching distribution found for numpy

可能我在防火墙后面,但我很失望,因为我可以使用install.packagesR 下安装包,但我不明白为什么我不能用 Python 做同样的事情。如果我手动安装包(在numpy的情况下,从这里

numpy

关于使用pip,我错过了什么?

编辑:根据 cmets 中的建议,我从 numpy 下载了 numpy 的 .whl 文件,然后导航到下载目录并执行

  pip install numpy-1.10.1-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl

我只得到了

  numpy-1.10.1-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl is not a supported wheel on this platform.

我该怎么办?

【问题讨论】:

  • 您直接使用pip 安装的软件包或通过普通程序安装的软件包(下载并从pypi 或其他来源安装)没有区别
  • 无论如何,带有 C 扩展名的模块/包(例如 numpy)需要在 pip 安装期间进行 C 编译,这在 Windows 上并非易事。我强烈建议从官方网站或 C. Gohlke 的网站下载二进制发行版。在 Windows 上,pip 仅在模块是纯 python 或 pypi 有 wheel 包时才有效,除非你有适当的构建系统。
  • @otterb 我 100% 赞成尽可能使用二进制文件,但我该怎么做呢?从我在问题中链接的页面中,我单击了this link 并获得了一个whl 文件。没有 Windows 安装程序。那么如何安装呢?
  • 我也试过sourceforge,确切地说是this link,这次我得到了一个zip 文件,其中包含带有py 文件的各种文件夹,但我又不知道该怎么办他们。
  • 线索在文件名中——那个*是为 OSX 而不是 Windows 设计的。尝试使用来自here 的Windows 二进制文件之一,或安装Anaconda Python distribution

标签: python numpy pip


【解决方案1】:

就个人而言,是~/.config/pip/pip.conf(包含extra-index-url)中的conf文件阻塞。

使用旧的 pip 8 进行实验,因为升级对于另一个项目所需的 extra-index-url 来说更加糟糕。

【讨论】:

    【解决方案2】:

    你有没有机会使用 Anaconda?

    我在尝试使用 cmd 安装 Django 时遇到了好几个小时,但它无法正常工作!我打开了 Anaconda Prompt,照常运行

    py -m pip install Django
    

    命令,嘿,快! Django 安装了!!

    【讨论】:

      【解决方案3】:

      要绕过防火墙,您可以使用代理

      pip install numpy --proxy <domain\user:password@proxyaddress:port>
      

      例如,

      pip install numpy --proxy http://<username>:<password>@proxy.xyz.com:2180
      

      【讨论】:

      • 虽然这段代码可以回答这个问题,但它缺乏解释。请考虑添加文字来解释它的作用,以及它为什么回答所提出的问题。
      【解决方案4】:

      应使用代理。例如:

      python.exe -m pip install numpy --proxy="proxy.com:8080"
      

      其中“proxy.com:8080”是代理服务器地址和端口。这可以在操作系统设置中找到。

      如何获得它们:

      1. 窗口:What Is a Proxy or Proxy Server
      2. Linux How can I find out the proxy address I am behind?
      3. OSX:How can I get Mac OS X's proxy information in a Bash script?

      【讨论】:

      • 在 --proxy="proxy.com:8080" 中,我必须输入什么来代替 proxy.com?
      • 我已经扩展了我的答案。
      • 但是问题的根源是什么?为什么使用代理可以解决问题?
      • 根本问题是执行:pip install numpy 以错误结束。
      • 我们可以定义一个代理而不是每次安装都定义它吗?