如何修复 urllib3 运行时错误:请求依赖项“urllib3”必须版本 >= 1.21.1,< 1.22?

Dev*_*ist 5 linux bash urllib3 python-3.x dropbox-api

我是一名新开发人员,正在学习使用 Python 3.4.2 进行编码。我在 Raspberry Pi3 上运行 Debian Linux。全新安装后我都做了

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

让一切都是最新的。

我正在尝试测试将文件上传到 Dropbox 的一段代码:

import dropbox
import urllib3

authkey = (my dropbox dev auth key)

with open('test.csv','rb') as f:
    dbx = dropbox.Dropbox(authkey)
    dbx.files_upload(f.read(), '/test.csv')
Run Code Online (Sandbox Code Playgroud)

现在,我不知道实际的 Dropbox 代码是否正确,因为当我在 Python shell 中运行脚本时收到以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 58, in <module>
    assert minor >= 21
AssertionError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/dbtest.py", line 1, in <module>
    import dropbox
  File "/usr/local/lib/python3.4/dist-packages/dropbox/__init__.py", line 3, in <module>
    from .dropbox import __version__, Dropbox, DropboxTeam, create_session  # noqa: F401
  File "/usr/local/lib/python3.4/dist-packages/dropbox/dropbox.py", line 18, in <module>
    import requests
  File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 61, in <module>
    raise RuntimeError('Requests dependency \'urllib3\' must be version >= 1.21.1, < 1.22!')
RuntimeError: Requests dependency 'urllib3' must be version >= 1.21.1, < 1.22!
Run Code Online (Sandbox Code Playgroud)

对我来说,这表明我的 urllib3 安装有问题,所以我进入 bash shell 并输入:

sudo pip3 install --update urllib3
Run Code Online (Sandbox Code Playgroud)

并得到完全相同的错误消息:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 58, in <module>
    assert minor >= 21
AssertionError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 74, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 22, in <module>
    import requests, six
  File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 61, in <module>
    raise RuntimeError('Requests dependency \'urllib3\' must be version >= 1.21.1, < 1.22!')
RuntimeError: Requests dependency 'urllib3' must be version >= 1.21.1, < 1.22!
Run Code Online (Sandbox Code Playgroud)

我有其他使用 Twilio 发送 SMS 消息的脚本,但它们也不再工作,产生引用 urllib3 版本问题的相同错误消息。

谁能帮助我解决这个问题或为我指明正确的方向?

非常感谢。

Sha*_*lya 4

在 Mac 上尝试以下操作: sudo pip install urllib3==1.23 sudo pip install requests