Urllib2 voor Python 3.5.1 moet installeren

Ik gebruik Python 3.5.1 voor Mac. Ik wil de module urllib2gebruiken. Ik heb geprobeerd het te installeren, maar ik kreeg te horen dat het is opgesplitst in urllib.requesten urllib.errorvoor Python 3.

Mijn commando (voorlopig uitgevoerd vanuit de framework bin directory omdat het niet in mijn pad staat):

sudo ./pip3 install urllib.request

Retourneert dit:

Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request

Ik kreeg eerder dezelfde foutmelding toen ik urllib2in één klap probeerde te installeren.


Antwoord 1, autoriteit 100%

WAARSCHUWING: beveiligingsonderzoeken hebben verschillende vergiftigde pakketten op PyPI, waaronder een pakket met de naam urllib, dat na installatie naar huis zal bellen. Als je enige tijd na juni 2017 pip install urllibhebt gebruikt, verwijder dat pakket dan zo snel mogelijk.

Dat kan niet, en hoeft ook niet.

urllib2is de naam van de bibliotheek die is opgenomen in Python 2. U kunt de urllib.requestbibliotheekinbegrepen bij Python 3, in plaats daarvan. De bibliotheek urllib.requestwerkt op dezelfde manier als urllib2in Python 2. Omdat het al bijgevoegdis, hoeft u het niet te installeren.

Als je een tutorial volgt die je vertelt om urllib2te gebruiken, zul je merken dat je meer problemen zult tegenkomen. Je tutorial is geschreven voor Python 2, niet voor Python 3. Zoek een andere tutorial, of installeer Python 2.7 en ga verder met je tutorial op die versie. U zult zien dat urllib2bij die versie wordt geleverd.

U kunt ook de requests-bibliotheekinstalleren voor een hoger niveau en gemakkelijker te gebruiken API. Het werkt op zowel Python 2 als 3.


Antwoord 2, autoriteit 17%

Volgens de docs:

OpmerkingDe urllib2-module is verdeeld over verschillende modules in Python 3, genaamd urllib.requesten urllib.error. De 2to3-tool past de import automatisch aan bij het converteren van uw bronnen naar Python 3.

Het lijkt er dus op dat het onmogelijk is om te doen wat je wilt, maar je kunt wel de juiste python3-functies van urllib.requestgebruiken.


Antwoord 3, autoriteit 14%

In Python 3 werd urllib2vervangen door twee ingebouwde modules genaamd urllib.requesten urllib.error

Aangepast van bron


Dus vervang dit:

import urllib2

Hiermee:

import urllib.request as urllib2

Other episodes