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

时间:2014-01-22 22:05:18

标签: python git ubuntu pip git-review

我运行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

有没有人对此有任何想法?

34 个答案:

答案 0 :(得分:111)

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

我的环境:关于Ubuntu 12.04.5的Python 2.7.12 / 2.7.14在virtualenv中的LTS,pip版本1.1。

我的错误:

pip install nose

在控制台中:

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

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

对我很好奇,因为我在脚本中运行这些相同的命令没有问题大约一年。

这解决了它:

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

(注意https)

希望这有助于某人!

答案 1 :(得分:43)

您需要升级您的点子安装

Goat(简短版本:--index-url)选项允许您在pip自身调用中指定index-url,您可以使用https-variant。然后你可以指示pip自我升级。

-i

之后你应该可以在没有sudo pip install --index-url https://pypi.python.org/simple/ --upgrade pip选项的情况下使用pip。

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

  

BACKWARD INCOMPATIBLE 不再暗中支持不安全的来源   相反,需要明确信任不安全的起源   使用--index-url选项。

您可以使用--trusted-host检查您的点数版本。

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

答案 2 :(得分:42)

修改

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

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

ORIGINAL FIX:

尝试使用pip==1.5.4

时出现此问题

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

让我的解决方法是在经过数小时尝试不同的东西后恢复和运行PIP是我的 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来设置我希望列在我{{1}中的所有软件包文件。

这也是我发现Google群组中有几个人通过该问题的推荐黑客:

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

答案 3 :(得分:12)

检查你的代理连接,我有类似的问题,然后我改变了我的连接,它没有代理和繁荣,它开始下载和设置库

答案 4 :(得分:12)

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

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

答案 5 :(得分:6)

我对pip 1.5.6也有同样的问题。

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

rm -r ~/.pip/

答案 6 :(得分:6)

pip==1.5.6我遇到了同样的问题。我不得不纠正我的系统时间。

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

答案 7 :(得分:5)

这对我在Ubuntu 12.04上有用。

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

答案 8 :(得分:4)

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

应该是这样的:

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

使用Ubuntu 12和pip 9.0.1为我工作

答案 9 :(得分:3)

它有效!

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

答案 10 :(得分:2)

我能够通过升级我的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

答案 11 :(得分:1)

如果你的代理配置正确,那么pip版本1.5.6将正确处理。错误已经解决。

您可以使用easy_install pip==1.5.6

升级点数

答案 12 :(得分:1)

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

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

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

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

答案 13 :(得分:1)

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

 sudo pip install pyinstaller

这对我有用。

答案 14 :(得分:1)

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

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

如果你没有获得ping,请尝试将DNS服务器添加到文件中......例如:

nameserver xxx.xxx.xxx.xxx

答案 15 :(得分:1)

我的解释/查询是针对 windows环境 我对python很新,这对于仍然比我更新的人。
我安装了最新的pip(python安装程序包)并从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载了32位/ 64位(开源)兼容的二进制文件,并且它可以工作。

安装pip的步骤,虽然在python安装期间默认安装了pip 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 app进行工作(安装文件),如下所示:
\ python27 \ scripts \ pip2.7.exe安装file_path \ file_name --proxy
如果你面对轮子(即鸡蛋)问题,请使用兼容的二进制包文件。 希望这会有所帮助。

答案 16 :(得分:1)

在我的情况下(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/

答案 17 :(得分:1)

我面临同样的问题,但这是相关的代理。它是通过设置代理来解决的。

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

这可能有助于某人。

答案 18 :(得分:1)

就我而言,我将安装django(

  

pip安装Django

) 并且它与ssl证书存在相同的问题(无法获取索引基本URL http://pypi.python.org/simple/

它来自virtualenv,所以请这样做:

第一:   删除您的virtualenv

  

停用   rm -rf env

第二:   检查是否有点子

  

pip3 -V

如果您没有

  

sudo apt-get install python3-pip

最后:

使用nosite-packages安装virtualenv   并创造出您的环境

  

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

     

。 env / bin / activate

答案 19 :(得分:0)

我的问题是系统virtualenv版本。

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

virtualenv创建的点数版本为1.5.6,但我的系统点数版本为10.0.1

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

pip install virtualenv --upgrade

它已将virtualenv升级为版本16.0.0,现在,使用pip installvirtualenv创建的env中的python2.7完美无瑕。此外,env中的pip版本现在为10.0.1

升级前:

答案 20 :(得分:0)

我尝试了几乎所有的答案,没有修复我的错误,所以我只是重新安装python(在我的情况下我有2.7.9版本,我安装2.7.15)并且错误最终修复。 无需先卸载python,安装程序会为您执行此操作。

答案 21 :(得分:0)

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

中收到此信息
Could not fetch URL https://pypi.python.org/simple/: HTTP Error 403: TLSv1.2+ is required

我没有一个直截了当的解决方案,但我提到它是值得注意的事情,然后你在这里浪费时间尝试其他一些解决方案。

  • 我显然已经在使用https网址
  • 没有代理或防火墙问题
  • 使用trusted-host没有改变任何东西(不知道我选择了什么)

我的openssl过于陈旧,甚至不能ssl.OPENSSL_VERSION,所以也许这就是解释。

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

这是一个非常古老的Debian盒子,Python 2.6.6。

答案 22 :(得分:0)

我发现Daniel F和mattdedek的解决方案非常有用:使用https URL,并升级pip以使其成为默认值。但这仍然不能解决我的问题。在Mac OS X / Python 3.4下,我遇到了此错误:

$ pip3 install Flask
Downloading/unpacking Flask
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement Flask
Cleaning up...
No distributions at all found for Flask
Storing debug log for failure in /Users/huttarl/.pip/pip.log

和pip.log基本上显示了相同的内容:

  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pip/index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req) 
pip.exceptions.DistributionNotFound: No distributions at all found for Flask

在朋友的帮助下,我了解到从Python 3.4升级到3.8 可以解决此问题。显然这是因为Python 3的较新版本之一包含更新的证书

  

证书验证和OpenSSL

     

此软件包包括自己的OpenSSL 1.1.1私有副本。的   由系统管理的系统和用户钥匙串中的信任证书   钥匙串访问应用程序和安全命令行实用程序是   不被Python ssl模块用作默认值。样例命令   脚本包含在/ Applications / Python 3.8中,用于安装   第三方证书中的默认根证书捆绑   包(https://pypi.org/project/certifi/)。双击安装   可以运行它的证书。

     

捆绑的点有其自己的默认证书存储区,用于验证   下载连接。

此升级后,运行Install Certificates.commandpip3 install Flask成功运行。

您可能已经在Mac OS中升级到Python 3.6+,只是忽略了此证书安装命令。在这种情况下,浏览至Applications / Python 3.x并双击Install Certificates.command。 (请参见Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)

答案 23 :(得分:0)

检查 ~/.pip/pip.log

它可能包含错误信息

Could not fetch URL https://pypi.python.org/simple/pip/: 403 Client Error: [[[!!! BREAKING CHANGE !!!]]] Support for clients that do not support Server Name Indication is temporarily disabled and will be permanently deprecated soon. See https://status.python.org/incidents/hzmjhqsdjqgb and https://github.com/pypa/pypi-support/issues/978 [[[!!! END BREAKING CHANGE !!!]]]

如果是这样,修复方法是升级到 Python 2.7 的最后一个版本。见https://github.com/pypa/pypi-support/issues/978

就我而言,我可以使用 add-apt-repository ppa:fkrull/deadsnakes-python2.7 && apt-get update && apt-get upgrade 做到这一点,但 YMMV 可能会因分布而异。

答案 24 :(得分:0)

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

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

答案 25 :(得分:0)

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):

答案 26 :(得分:0)

我和你见过同样的问题。当我意识到它可能是由numpy或pip的无与伦比的版本引起的时候,我卸载了numpy和pip,然后继续这样' https://radimrehurek.com/gensim/install.html',最后我成功了!

答案 27 :(得分:0)

In case you use a firewall, make sure outbound connections to port 443 are not blocked, e.g. run:

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

答案 28 :(得分:0)

尝试重新安装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

答案 29 :(得分:0)

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

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

如果版本为0.9.7,则应验证是否需要更新OpenSSL。如果你知道如何直接做到这一点,那很好(但请在评论中告诉我)。如果没有,你可以按照this answer中的建议,从64位/ 32位安装程序重新安装python,而不是从python.org重新安装python(我使用的是python 3.4.2)。我现在有OpenSSL版本0.9.8,而且没有这些问题。

答案 30 :(得分:0)

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

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

答案 31 :(得分:0)

我在~/.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

答案 32 :(得分:0)

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

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再次正常工作。

答案 33 :(得分:-1)

您可以尝试使用以下命令:

  
    
      

python -m pip install --trusted-host https://pypi.python.org deepdiff

    
  

它将起作用。