it-swarm.com.de

RequestsDependencyWarning: urllib3 (1.9.1) oder chardet (2.3.0) passen nicht zu einer unterstützten Version

Ich habe mehrere Seiten zu diesem Problem gefunden, aber keine davon löste mein Problem.

Auch wenn ich ein:

pip show

Ich bekomme :

/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.9.1) or chardet (2.3.0) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2691, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2322, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2328, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in <module>
    from pip.vcs import git, Mercurial, Subversion, Bazaar  # noqa
  File "/usr/lib/python2.7/dist-packages/pip/vcs/Mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 22, in <module>
    import requests, six
  File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 90, in <module>
    from urllib3.exceptions import DependencyWarning
ImportError: cannot import name DependencyWarning

Was ich getan habe :

pip install --upgrade chardet

aber als erkläre es mir den gleichen fehler.

so tat ich :

Sudo apt remove python-chardet

und alle seine Dependecies deinstallieren . Nachdem ich es neu installiert habe -> das gleiche: '(

Ich habe das gleiche für Python-Pip gemacht. Nach der Neuinstallation -> gleich.

Hier sind die Zeilen zu den Versionen von urllib3 und chardet: Auszug aus /usr/local/lib/python2.7/dist-packages/requests/ init . Py:

    # Check urllib3 for compatibility.
    major, minor, patch = urllib3_version  # noqa: F811
    major, minor, patch = int(major), int(minor), int(patch)
    # urllib3 >= 1.21.1, <= 1.22
    assert major == 1
    assert minor >= 21
    assert minor <= 22

    # Check chardet for compatibility.
    major, minor, patch = chardet_version.split('.')[:3]
    major, minor, patch = int(major), int(minor), int(patch)
    # chardet >= 3.0.2, < 3.1.0
    assert major == 3
    assert minor < 1
    assert patch >= 2


# Check imported dependencies for compatibility.
try:
    check_compatibility(urllib3.__version__, chardet.__version__)
except (AssertionError, ValueError):
    warnings.warn("urllib3 ({0}) or chardet ({1}) doesn't match a supported "
                  "version!".format(urllib3.__version__, chardet.__version__),
                  RequestsDependencyWarning)

Meine Versionen sind:

 ii  python-urllib3                                             
     1.9.1-3                                    all          HTTP library with thread-safe connection pooling for Python 
ii  python-chardet     
     2.3.0-1   

                             all          universal character encoding detector for Python2

Ich habe keine Ideen mehr ...

Vielen Dank an alle und sorry für mein Englisch :)

10
NuX_o

Sie haben ein gemischtes Setup (sowohl apt als auch pip wurden zur systemweiten Installation verwendet, was üblich ist), und es stimmt tatsächlich nicht mit den unterstützten Modulversionen überein, die für Anforderungen erforderlich sind (und pip v1.5.6 ist auch ziemlich alt). .

Die requests (welche Version wird wahrscheinlich von pip install übrig bleiben) erfordert:
urllib3: 1.21.1 - 1.22
chardet: 3.0.2 - 3.1.0 

Du hast:
urllib3 (1.9.1) aus dem Debian-Paket python-urllib3 1.9.1-3
chardet (2.3.0) aus dem Debian-Paket python-chardet 2.3.0-1 

Zwei Optionen: 

  • entweder requests von der Betriebssystemdistribution auf die Version downgraden (weitere Informationen zu apt show python-requests) oder ältere Versionen von pypi.org oder 

  • oder installieren Sie neuere urllib3 und chardet (Sie können die Wheel-Dateien manuell von pipy.org herunterladen und pip install einschließlich ihrer Abhängigkeiten verwenden), entweder auf Benutzerebene (--user pip install option) oder in einer virtualenv.

Sie können alles in einem virtualenv (apt show python-virtualenv) testen. Es sollte sogar einen neueren Pip für Sie in seinen virtuellen Umgebungen bereitstellen. Es ist auch möglich , einen neueren Pip 10.0.1 auf Benutzerebene (--user) neben Ihrem vom Betriebssystem angebotenen Pip zu installieren, aber Sie müssen vorsichtig sein . Viel Glück!

3
Alex

Dies liegt an unterschiedlichen Anforderungsmodulen, die vom Betriebssystem installiert werden, und den Python-Abhängigkeiten für Ihre lokale Installation.

Es kann durch ein Upgrade von Anfragen gelöst werden:

pip install requests

oder

pip3 install requests
17
Joel G Mathew

Am besten stellen Sie sicher, dass die Anforderungen nd ihre Abhängigkeiten aktuell sind.

Python 2

$ pip install --upgrade Anfragen

Python 3

$ pip3 install --upgrade Anfragen

4
h3xStream

Einfach muss man nur updaten -

 pip3 install requests
3
Mohammad Aarif

Beim Upgrade auf urllib3 1.23 ist ein ähnlicher Fehler aufgetreten. Die Installation einer älteren Version 1.22 hat diesen Fehler für mich behoben. 

Folgendes wurde zur Installation der älteren urllib3-Version durchgeführt:

  1. pip uninstall urllib3
  2. pip install urllib3==1.22
2
Nafeez Quraishi

Es hat für mich funktioniert. Führen Sie einfach die folgenden Befehle aus.

$ Sudo pip uninstall requests

$ Sudo pip install requests

$ Sudo pip uninstall docopt

$ Sudo pip install docopt

Hier ist der Verweis Link für Details !

1
Saurabh

Ich hatte eine ältere Version von requests.

Das Ändern der requests-Version von 2.19.1 in 2.20.1 hat es für mich gelöst.

1
Eyal Levin

Alles was benötigt wird ist Sudo pip install --upgrade requests.

Ohne Sudo erhalten Sie Permission denied, Und wenn Sie --user Hinzufügen, wird es nicht in Systempython installiert.

Danach erhält pip list Keine RequestsDependencyWarning.

Die Ausgabe auf meinem System:

$ Sudo pip install --upgrade requests

/usr/lib/python3.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Collecting requests
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
     |████████████████████████████████| 61kB 510kB/s
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /usr/lib/python3.7/site-packages (from requests) (2.8)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3.7/site-packages (from requests) (1.25.2)
Collecting certifi>=2017.4.17 (from requests)
  Downloading https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl (158kB)
     |████████████████████████████████| 163kB 1.1MB/s
Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in /usr/lib/python3.7/site-packages (from requests) (3.0.4)
Installing collected packages: certifi, requests
  Found existing installation: requests 2.21.0
    Uninstalling requests-2.21.0:
      Successfully uninstalled requests-2.21.0
Successfully installed certifi-2019.3.9 requests-2.22.0

[Ich hätte einfach einen kleinen Kommentar zu der Antwort von @ h3xStream hinzugefügt, aber ich habe nicht genug Ansehen.]

1
j77h

Ich bin auf dieses Problem gestoßen, als ich versucht habe, docker-compose <some-action> Nach einer Systemaktualisierung auszuführen.

Es gibt einige Gründe, die zu dem genannten Fehler führen können.

Ich füge hier eine weitere Lösung hinzu. Vielleicht hilft es jemandem, wenn die anderen Lösungen nicht zu seinem spezifischen Szenario passen.

Die folgende Kombination hat das Problem für mich gelöst:

pip uninstall urllib3    
pip uninstall chardet
pip install requests 
1
Rotemya

Es wurde versucht, urllib3 1.25.2 auf 1.24.3 herunterzustufen, letzteres wurde jedoch nicht gefunden.

$ Sudo pip install -I urllb3==1.24.3
ERROR: No matching distribution found for urllb3==1.24.3

Eine schnelle Lösung, die bei mir funktioniert hat: Bearbeiten /usr/lib/python3.7/site-packages/requests/__init__.py

Im Block:

# Check urllib3 for compatibility.
major, minor, patch = urllib3_version  # noqa: F811
major, minor, patch = int(major), int(minor), int(patch)
# urllib3 >= 1.21.1, <= 1.24     
assert major == 1
assert minor >= 21
assert minor <= 24

Geändert die assert minor <= 24 bis assert minor <= 25 und das löste mein Problem - fürs Erste.

Es gibt einen Fehlerbericht über Github https://github.com/streamlink/streamlink/issues/2448

0
Thor

aktualisiere einfach pip: Sudo pip install -U pip

0
TonyGreenMouse

Ich habe diesen Fehler beim Ausführen einer virtuellen python Umgebung (Home Assistant) und die obigen Vorschläge haben bei mir nicht funktioniert, da der Benutzer (Homeassistant) kein Passwort oder keine Sudo-Rechte hatte.

Die Lösung in diesem Szenario bestand darin, die venv-Umgebung einfach zu deaktivieren, das Verzeichnis der virtuellen Umgebung zu löschen und den virtuellen Ordner neu zu erstellen.

Führen Sie zum Deaktivieren von python3 venv einfach den Befehl 'disable' bash an einer beliebigen Stelle in Ihrem virtuellen Umgebungsbaum aus.

0
Tobias Holm

Überprüfen Sie zu jedem Zeitpunkt, woher die Quelle kommt, insbesondere wenn der Entwickler in den Kommentaren klare Anweisungen hinterlassen hat, wie in diesem Fall. (Vielleicht sollte der Autor genauer sein und es in der Fehlermeldung angeben, ja)

Öffnen Sie vi /usr/lib/python2.7/site-packages/requests/__init__.py und suchen Sie nach check_compatibility(.

def check_compatibility(urllib3_version, chardet_version):
    urllib3_version = urllib3_version.split('.')
    assert urllib3_version != ['dev']  # Verify urllib3 isn't installed from git.

    # Sometimes, urllib3 only reports its version as 16.1.
    if len(urllib3_version) == 2:
        urllib3_version.append('0')

    # Check urllib3 for compatibility.
    major, minor, patch = urllib3_version  # noqa: F811
    major, minor, patch = int(major), int(minor), int(patch)
    # urllib3 >= 1.21.1, <= 1.24     <------------------ here
    assert major == 1
    assert minor >= 21
    assert minor <= 24

    # Check chardet for compatibility.
    major, minor, patch = chardet_version.split('.')[:3]
    major, minor, patch = int(major), int(minor), int(patch)
    # chardet >= 3.0.2, < 3.1.0     <------------------ and here
    assert major == 3
    assert minor < 1
    assert patch >= 2

Dann kennen Sie den Bereich der Versionen von urllib3 und chardet-kompatibel. Also versuchst du mit:

pip uninstall urllib3
pip install urllib3==1.24
pip uninstall chardet
pip install chardet==3.0.9 # this will fail, prompting the correct versions available, so you will try to install 3.0.4 instead
0
WesternGun