【问题标题】:Error trying to install Django with pip尝试使用 pip 安装 Django 时出错
【发布时间】:2015-05-05 15:38:15
【问题描述】:

当我在 OSX 中执行“pip install django”时出现以下错误...

Downloading/unpacking django
  Error <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm> while getting https://pypi.python.org/packages/source/D/Django/Django-1.8.1.tar.gz#md5=0f0a677a2cd56b9ab7ccb1c562d70f53 (from https://pypi.python.org/simple/django/)
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/basecommand.py", line 134, in main
    status = self.run(options, args)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/commands/install.py", line 236, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/req.py", line 1092, in prepare_files
    self.unpack_url(url, location, self.is_download)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/req.py", line 1238, in unpack_url
    retval = unpack_http_url(link, location, self.download_cache, self.download_dir)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/download.py", line 602, in unpack_http_url
    resp = _get_response_from_url(target_url, link)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/download.py", line 638, in _get_response_from_url
    resp = urlopen(target_url)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/download.py", line 176, in __call__
    response = self.get_opener(scheme=scheme).open(url)
  File "/Users/garylewis/anaconda/lib/python2.7/urllib2.py", line 404, in open
    response = self._open(req, data)
  File "/Users/garylewis/anaconda/lib/python2.7/urllib2.py", line 422, in _open
    '_open', req)
  File "/Users/garylewis/anaconda/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/Users/garylewis/anaconda/lib/python2.7/site-packages/pip/download.py", line 155, in https_open
    return self.do_open(self.specialized_conn_class, req)
  File "/Users/garylewis/anaconda/lib/python2.7/urllib2.py", line 1184, in do_open
    raise URLError(err)
URLError: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

Storing complete log in /var/folders/tv/mxmczdzd00bb3z5zkm6q1l400000gn/T/tmpYaAhkf

如何解决这个问题并安装 Django?我认为这可能是 pip 本身的问题。我似乎记得过去无法用它安装其他 Python 东西。

【问题讨论】:

    标签: python ssl pip failed-installation


    【解决方案1】:

    该错误似乎与here 所述的 SSL Python 证书有关。由于 Heartbleed 已知错误而更新的证书。您需要更新/重新安装您的 Python。

    【讨论】:

    • 谢谢。我安装了最新版本的 Python,但我不知道如何告诉 pip 使用它而不是 Python 2.7。我也尝试按照*.com/a/3819829/805141 中的步骤卸载 Python 2.7,但它似乎不起作用
    • 您是否尝试过卸载 pip 并使用新版本的 Python 重新安装?
    • 不。试图弄清楚如何做到这一点。
    【解决方案2】:

    我搜索问题并找到这个问题。但我发现这个问题没有解决方案。我分享我的解决方案如下:

    1. 如题所示,使用了anaconda。请尝试使用 conda 安装。如果返回 HTTP 403,你和我的问题一样。我认为原因在于旧的 anaconda 版本。

    2. 我通过卸载 anaconda 并重新安装来解决此问题。我的系统是 macOS。

    【讨论】: