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
在使用virtualenv
和python2.7
创建的环境中完美运行。此外,环境中的pip
版本现在是10.0.1
。
升级前:
【讨论】:
以上是关于pip 连接失败:无法获取索引基本 URL http://pypi.python.org/simple/的主要内容,如果未能解决你的问题,请参考以下文章
在多次运行说“无法建立连接”或“连接()超时”后,CURL 失败
无法获取索引库URL https://pypi.python.org/simple/〜安装Python 3 OS X之后