pip 连接失败:无法获取索引基本 URL http://pypi.python.org/simple/

Posted

技术标签:

【中文标题】pip 连接失败:无法获取索引基本 URL http://pypi.python.org/simple/【英文标题】:pip connection failure: cannot fetch index base URL http://pypi.python.org/simple/ 【发布时间】:2014-02-13 05:21:33 【问题描述】:

我运行sudo pip install git-review,并收到以下消息:

Downloading/unpacking git-review
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement git-review
No distributions at all found for git-review
Storing complete log in /home/sai/.pip/pip.log

有人对此有任何想法吗?

【问题讨论】:

必须是代理连接 "它们似乎都不能解决我的问题" 这些是什么?这样我们就不会重复自己。 【参考方案1】:

我知道这是一个旧线程,但我今天遇到了这个问题并想分享我的解决方案,因为我在 SO 的其他地方没有看到这个解决方案。

我的环境:虚拟环境中的 Ubuntu 12.04.5 LTS 上的 Python 2.7.12/2.7.14,pip 版本 1.1。

我的错误:

pip install nose

在控制台中:

Cannot fetch index base URL http://pypi.python.org/simple/

在~/.pip/pip.log:

Could not fetch URL http://pypi.python.org/simple/: HTTP Error 403: SSL is required

我很好奇,因为我已经在脚本中运行这些相同的命令大约一年了。

这修复了它:

pip install --index-url=https://pypi.python.org/simple/ nose

(注意 https)

希望这对某人有所帮助!

【讨论】:

非常感谢!我在 Ubuntu 12.04 上也遇到了这个问题,它安装了现有的 pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7),实际上无法使用。 您先生应该获得奖章。我在我的 beaglebone black 上遇到了这个问题。现在它已经修复了。 这里有很多答案。除了这个之外,它们都不相关/对我有用。谢谢! pip install --index-url=http://mypypi.net/simple/ 抛出错误ERROR: You must give at least one requirement to install (see "pip help install") @Confounded - 感谢您指出这一点,只需在 --index-url 选项之后列出您要安装的软件包。有关示例,请参阅更新。【参考方案2】:

您需要升级您的 pip 安装,因为它仍在使用 http 而不是 https

--index-url(短版:-i)选项允许您在调用 pip 本身时指定一个 index-url,在那里您可以使用 https-variant。然后你可以指示 pip 自己升级。

sudo pip install --index-url https://pypi.python.org/simple/ --upgrade pip

之后,您应该可以在没有 --index-url 选项的情况下使用 pip。


我相信发布7.0.0 (2015-05-21) 触发了这个问题。该版本的发行说明如下:

BACKWARD INCOMPATIBLE 不再隐式支持不安全的来源 来源,而是要求明确信任不安全的来源 使用--trusted-host 选项。

您可以通过pip --version查看您的 pip 版本。

这意味着发出 sudo pip install --trusted-host --upgrade pip 一次也可以解决此问题,尽管通过不安全的 http 下载 pip。这也可能根本不起作用,因为服务器上可能不再可以访问不安全的端点(我没有对此进行测试)。

【讨论】:

【参考方案3】:

编辑:

PIP 的当前版本不再存在此问题。截至目前,版本:7.1.2 是当前版本。这是PIP 链接:

https://pypi.python.org/pypi/pip

原始修复:

我在尝试使用pip==1.5.4时遇到了这个问题

这是与 PIP 和 Python 的 PYPI 信任 SSL 证书相关的问题。如果您查看 Mac OS X 中的 PIP 日志:/Users/username/.pip/pip.log,它将为您提供更多详细信息。

我在尝试不同的东西数小时后让 PIP 恢复并运行的解决方法是在 Python 中进入我的 site-packages,无论它是在 virtualenv 中还是在您的正常 site-packages,并摆脱当前的 PIP 版本。对我来说,我有pip==1.5.4

我删除了 PIP 目录和 PIP egg 文件。然后我跑了

easy_install pip==1.2.1  

这个版本的 PIP 没有 SSL 问题,然后我可以在我的 virtualenv 中运行我的普通pip install -r requirements.txt 来设置我想要的所有包,这些包都列在我的requirements.txt 文件中。

这也是我发现的这个 Google 群组中的几个人推荐的解决问题的方法:

https://groups.google.com/forum/#!topic/beagleboard/aSlPCNYcVjw

【讨论】:

也为我解决了这个问题。 仅供参考,如果你现在正在阅读这篇文章(就像我一样),那么你应该升级 pip 而不是降级它。我很惊讶地发现我落后了 5 个主要版本(我们现在是 6.0.8)。升级解决了这个问题:) @Dr.Acula 你是对的。我已经更新了我的答案。谢谢。 "you should upgrade pip" 我无法升级 pip,原因与我无法安装软件包相同; HTTP Error 403: SSL is required @user5359531 从PyPI 下载 pip 压缩包并执行pip install pip-x.x.x.tar.gz【参考方案4】:

我添加了 --proxy 命令行选项来指向代理并且它正在工作(pip 版本是 1.5.4 和 python 2.7)。由于某种原因,它没有采用 shell 环境变量 HTTPS_PROXY、HTTP_PROXY、https_proxy、http_proxy。

sudo pip --proxy [user:passwd@]proxy.server:port install git-review

【讨论】:

用户周围的方括号是必需的吗?为什么密码后面用@符号?【参考方案5】:

检查您的代理连接,我遇到了类似的问题,然后我更改了未代理的连接,然后开始下载并设置库

【讨论】:

您是如何更改代理连接以使其正常工作的?我也有同样的问题。 我删除了代理并将连接更改为没有代理的连接,然后安装后我改回工作连接 我面临同样的问题,我很确定这是一个代理问题。除了使用其他连接之外,还有其他解决方法吗? 我连接到我的手机以绕过我公司的代理。很好的解决方案。 我的问题是 Fiddler 已打开(并且我已将 Fiddler 配置为解密 HTTPS 流量)。我关闭了 Fiddler,它运行良好。【参考方案6】:

我在 pip 1.5.6 上遇到了同样的问题。

我刚刚删除了 ~/.pip 文件夹,它就像一个魅力。

rm -r ~/.pip/

【讨论】:

我不敢相信.. 这行得通!谢谢你。我应该重新创建这个文件夹吗?我希望这不会影响其他任何事情。【参考方案7】:

pip==1.5.6 也有同样的问题。我必须更正我的系统时间。

# date -s "2014-12-09 10:09:50"

【讨论】:

另一种更正系统时间的方法是使用 ntp 守护进程。 对我来说效果很好,很高兴修复起来这么简单【参考方案8】:

这在 Ubuntu 12.04 上对我有用。

pip install --index-url=https://pypi.python.org/simple/ -U scikit-learn

【讨论】:

【参考方案9】:

如果这不是代理/网络问题,您应该尝试创建/编辑配置文件 .pip/pip.conf 或者如果您以 root 身份运行 pip /root/.pip/pip.conf。检查并将 index-url 从 http 更改为 https

应该是这样的:

[global] 
index-url=https://pypi.python.org/simple/

在 Ubuntu 12 和 pip 9.0.1 上为我工作

【讨论】:

【参考方案10】:

有效!

sudo pip --proxy=http://202.194.64.89:8000 install elasticsearch ; 202.194.64.89:8000 是我的代理,

【讨论】:

【参考方案11】:

就我而言(Python 3.4,在虚拟环境中,在 macOS 10.10.6 下运行)我什至无法升级 pip 本身。帮助来自this SO answer,形式如下:

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

(如果不使用虚拟环境,可能需要sudo python。)

有了这个,我设法将pip 从版本 1.5.6 升级到版本 10.0.0(相当大的飞跃!)。此版本不使用 Python.org 站点不再支持的 TLS 1.0 或 1.1,并且可以很好地安装 PyPI 包。无需指定--index-url=https://pypi.python.org/simple/

【讨论】:

【参考方案12】:

我可以通过升级我的 python 来解决这个问题,该 python 以前附加到过时的 OpenSSL 版本。现在它正在使用 1.0.1h-1,我的包将 pip install。

仅供参考,我的日志和命令,使用 anaconda 并安装 pytest-ipynb 包 [1]:


$ conda update python
Fetching package metadata: ....
Solving package specifications: .
Package plan for installation in environment /Users/me/anaconda/envs/py27:

The following NEW packages will be INSTALLED: openssl: 1.0.1h-1

The following packages will be UPDATED: python: 2.7.5-3 --> 2.7.8-1 readline: 6.2-1 --> 6.2-2 sqlite: 3.7.13-1 --> 3.8.4.1-0 tk: 8.5.13-1 --> 8.5.15-0

Proceed ([y]/n)? y Unlinking packages ... [ COMPLETE ] |#############################################################| 100% Linking packages ... [ COMPLETE ] |#############################################################| 100%

$ pip install pytest-ipynb Downloading/unpacking pytest-ipynb Downloading pytest-ipynb-0.1.1.tar.gz Running setup.py (path:/private/var/folders/4f/b8gwyhg905x94twqw2pbklyw0000gn/T/pip_build_me/pytest-ipynb/setup.py) egg_info for package pytest-ipynb

Requirement already satisfied (use --upgrade to upgrade): pytest in /Users/me/anaconda/envs/py27/lib/python2.7/site-packages (from pytest-ipynb) Installing collected packages: pytest-ipynb Running setup.py install for pytest-ipynb

Successfully installed pytest-ipynb Cleaning up...

[1] 我关于这个问题的票; https://github.com/zonca/pytest-ipynb/issues/1

【讨论】:

很抱歉,我不确定为什么格式化会添加这么多空行?【参考方案13】:

我遇到了同样的问题,但那是相关的代理。通过设置代理解决了。

Set http_proxy=http://myuserid:mypassword@myproxyname:myproxyport
Set https_proxy=http://myuserid:mypassword@myproxyname:myproxyport

这可能对某人有所帮助。

【讨论】:

【参考方案14】:

如果您的代理配置正确,则 pip 1.5.6 版将正确处理此问题。错误已解决。

你可以用easy_install pip==1.5.6升级pip

【讨论】:

【参考方案15】:

额外答案:如果您是从 chroot 执行此操作。

您需要随机数来源才能与 pypi 建立安全连接。

在 linux 上,您可以将主机 dev 绑定到 chroot dev:

mount --bind /dev /path-to-chroot/dev

【讨论】:

【参考方案16】:

在代理连接中安装 pyinstaller 时,我也遇到了这个错误。我只是直接连接 Internet 连接(使用我的加密狗)并再次这样做。

 sudo pip install pyinstaller

这对我有用。

【讨论】:

【参考方案17】:

您可能在 /etc/resolv.conf 中缺少 DNS 服务器配置

确保您可以 ping 到: ping pypi.python.org

如果您没有收到 ping,请尝试将 DNS 服务器添加到文件中...类似于:

域名服务器 xxx.xxx.xxx.xxx

【讨论】:

【参考方案18】:

我的解释/询问是针对 windows 环境。 我对python很陌生,这是给比我还新手的人。 我安装了最新的 pip(python 安装程序包)并从 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载了 32 位/64 位(开源)兼容的二进制文件,它工作正常。安装 pip 的步骤,虽然通常是 pip在 python 安装过程中默认安装从 www.python.org/downloads/ - 从https://pypi.python.org/pypi/pip 下载 pip-7.1.0.tar.gz。 - 解压并解压上述文件。 - 在 pip-7.1.0 文件夹中,运行:python setup.py install。这安装了 pip 最新版本。使用 pip 安装(任何可行的操作)二进制包。 运行 pip 应用程序来完成工作(安装文件),如下所示: \python27\scripts\pip2.7.exe 安装文件路径\文件名 --proxy 如果您遇到车轮(即鸡蛋)问题,请使用兼容的二进制包文件。 希望这会有所帮助。

【讨论】:

【参考方案19】:

在我的情况下,我会安装 django (

pip 安装 django

) 并且它与 ssl 证书有同样的问题(Cannot fetch index base URL http://pypi.python.org/simple/)

它来自 virtualenv 所以做:

第一: 删除你的虚拟环境

停用 rm -rf 环境

第二: 检查有点

pip3 -V

如果你没有

sudo apt-get install python3-pip

终于:

使用 nosite-packages 安装 virtualenv 并让你的环境环境

sudo pip3 安装 virtualenv virtualenv --no-site-packages -p /usr/bin/python3.6

。环境/bin/激活

【讨论】:

【参考方案20】:

我遇到了类似的问题,但就我而言,我遇到了错误:

Downloading/unpacking bencode
  Cannot fetch index base URL http://c.pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement bencode
No distributions at all found for bencode
Storing complete log in /home/andrew/.pip/pip.log

就我而言,我可以通过编辑 ~/.pip/pip.conf 并将 http://c.pypi.python.org/simple/ 更改为 http://pypi.python.org/simple 来修复错误,然后 pip 再次正常工作。

【讨论】:

【参考方案21】:

我在~/.pip/pip.log 收到此错误消息

Could not fetch URL https://pypi.python.org/simple/: connection error: [Errno 185090050] _ssl.c:344: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
  Will skip URL https://pypi.python.org/simple/ when looking for download links for regulargrid

我通过更新我的~/.pip/pip.conf 修复了它。它不小心指向了不存在的cacert.pem 文件,看起来像这样

[global]
cert = /some/path/.pip/cacert.pem

【讨论】:

【参考方案22】:

我曾经使用easy_install pip==1.2.1 解决方法,但我随机found 表示,如果您遇到此错误,您可能安装了 32 位版本的 python。

如果你通过从源代码安装它来安装它的 64 位版本,然后在其上构建你的 virtualenv,你就不会再有那个 pip 错误了。

【讨论】:

【参考方案23】:

我也使用了选择的解决方案(降级 pip)来解决这个问题,直到我遇到另一个由相同潜在问题引起的看似无关的问题。 Python 的 OpenSSL 版本已过时。检查您的 OpenSSL 版本:

python -c 'import ssl; print(ssl.OPENSSL_VERSION)'

如果版本是0.9.7,那应该验证是否需要更新 OpenSSL。如果您知道如何直接执行此操作,那就太好了(但请在评论中告诉我)。如果没有,您可以按照this answer 中的建议,从 64 位/32 位安装程序而不是来自 python.org 的仅 32 位安装程序重新安装 python(我使用的是 python 3.4.2)。我现在有 OpenSSL 版本 0.9.8,没有这些问题。

【讨论】:

【参考方案24】:

尝试重新安装 pip :

curl -O https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz
tar xvfz pip-1.2.1.tar.gz
cd pip-1.2.1
python setup.py install

如果 curl 不起作用,您将遇到代理问题,请修复它应该可以正常工作。在 linux 浏览器中打开 google.com 后检查。

尝试安装

pip install virtualenv

【讨论】:

【参考方案25】:

如果您使用防火墙,请确保没有阻止到端口 443 的出站连接,例如运行:

sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

【讨论】:

【参考方案26】:

我遇到了同样的问题。当我意识到可能是numpy或pip版本不匹配导致的时候,我卸载了numpy和pip,然后继续这个'https://radimrehurek.com/gensim/install.html',终于成功了!

【讨论】:

【参考方案27】:
C:\Users\Asus>pip install matplotlib
Downloading/unpacking matplotlib
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement matplotlib
Cleaning up...
No distributions at all found for matplotlib
Storing debug log for failure in C:\Users\Asus\pip\pip.log

我使用了“easy_install pip==1.2.1”,效果很好。

C:\Users\Asus>easy_install pip==1.2.1
Searching for pip==1.2.1
Reading https://pypi.python.org/simple/pip/
Best match: pip 1.2.1
Downloading ...

然后使用这个命令'pip install matplotlib'

C:\Users\Asus>pip install matplotlib
Downloading/unpacking matplotlib
  Downloading matplotlib-2.0.0b4.tar.gz (unknown size):

【讨论】:

【参考方案28】:

如果您在 Windows 上的 Docker 容器中运行这些命令,则可能意味着您的 docker 机器的网络连接已过时,需要重建。要修复它,请运行以下命令:

docker-machine stop
docker-machine start
@FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i

【讨论】:

【参考方案29】:

我现在在$HOME/.pip/pip.log

Could not fetch URL https://pypi.python.org/simple/: HTTP Error 403: TLSv1.2+ is required

我对此没有直接的解决方案,但我提一下,在您在这里浪费时间尝试其他一些解决方案之前,需要注意这一点。

我显然已经在使用 https URL 没有代理或防火墙问题 使用trusted-host 并没有改变任何东西(不知道我在哪里找到的)

我的openssl 太旧了,甚至没有ssl.OPENSSL_VERSION,所以也许这就是这里的真正解释。

最后,擦除我的虚拟环境并使用virtualenv --setuptools env 重新创建它似乎至少修复了主要障碍。

这是在一个非常旧的 Debian 机器上,Python 2.6.6。

【讨论】:

【参考方案30】:

我的问题是系统virtualenv版本。

当我使用 python3 venv 创建环境时,一切正常。但是当我使用 virtualenv(默认使用 python2.7)创建一个 env 时,我收到了这些错误消息。

virtualenv创建的pip版本是1.5.6,但是我的系统pip版本是10.0.1

然后我跑了(在任何环境之外):

pip install virtualenv --upgrade

它将virtualenv 升级到版本16.0.0,现在我的pip install 在使用virtualenvpython2.7 创建的环境中完美运行。此外,环境中的pip 版本现在是10.0.1

升级前:

【讨论】:

以上是关于pip 连接失败:无法获取索引基本 URL http://pypi.python.org/simple/的主要内容,如果未能解决你的问题,请参考以下文章

在多次运行说“无法建立连接”或“连接()超时”后,CURL 失败

无法获取索引库URL https://pypi.python.org/simple/〜安装Python 3 OS X之后

适用于 excel 的 BigQuery 连接器 - 请求失败:错误。无法执行查询。获取 URL 时超时

无法获取 URL(python3.6 pip 问题)

错误:您所请求的网址(URL)无法获取 怎么搞的?

REST url返回错误或无法连接