Ik gebruik Python 3.5.1 voor Mac. Ik wil de module urllib2
gebruiken. Ik heb geprobeerd het te installeren, maar ik kreeg te horen dat het is opgesplitst in urllib.request
en urllib.error
voor 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 urllib2
in éé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 2017pip install urllib
hebt gebruikt, verwijder dat pakket dan zo snel mogelijk.
Dat kan niet, en hoeft ook niet.
urllib2
is de naam van de bibliotheek die is opgenomen in Python 2. U kunt de urllib.request
bibliotheekinbegrepen bij Python 3, in plaats daarvan. De bibliotheek urllib.request
werkt op dezelfde manier als urllib2
in Python 2. Omdat het al bijgevoegdis, hoeft u het niet te installeren.
Als je een tutorial volgt die je vertelt om urllib2
te 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 urllib2
bij 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.request
enurllib.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.request
gebruiken.
Antwoord 3, autoriteit 14%
In Python 3 werd
urllib2
vervangen door twee ingebouwde modules genaamdurllib.request
enurllib.error
Aangepast van bron
Dus vervang dit:
import urllib2
Hiermee:
import urllib.request as urllib2