Používam Python 3.5.1 pre Mac. Chcem používať urllib2. Skúšal som ho nainštalovať, ale bolo mi povedané, že pre Python 3 bol rozdelený na urllib.request a urllib.error.
Môj príkaz (zatiaľ spúšťaný z adresára bin frameworku, pretože ho nemám v ceste):
sudo ./pip3 install urllib.request
Vracia:
Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request
Rovnakú chybu som dostal aj predtým, keď som sa pokúsil nainštalovať urllib2 jedným ťahom.
UPOZORNENIE: Bezpečnostný výskum našiel niekoľko otrávených balíkov na PyPI, vrátane balíka s názvom
urllib
, ktorý po inštalácii 'zavolá domov'. Ak ste použilipip install urllib
niekedy po júni 2017, odstráňte tento balík čo najskôr.
Nemôžete'a ani nemusíte.
urllib2
je názov knižnice, ktorá je súčasťou jazyka Python 2. Namiesto nej môžete používať knižnicu urllib.request
, ktorá je súčasťou Pythonu 3. Knižnica urllib.request
funguje rovnako ako urllib2
v Pythone 2. Pretože je už zahrnutá, nemusíte ju inštalovať.
Ak postupujete podľa návodu, ktorý vám hovorí, aby ste použili urllib2
, potom zistíte, že'narazíte na viac problémov. Váš návod bol napísaný pre Python 2, nie pre Python 3. Nájdite si iný návod alebo si nainštalujte Python 2.7 a pokračujte v návode na tejto verzii. Zistíte, že urllib2
sa dodáva s touto verziou.
Prípadne si nainštalujte knižnicu requests
pre API vyššej úrovne a jednoduchšie na používanie. Bude fungovať na Pythone 2 aj 3.
Podľa dokumentov:
Poznámka. Modul urllib2 bol v Pythone 3 rozdelený do niekoľkých modulov s názvami urllib.request a urllib.error. Nástroj 2to3 automaticky prispôsobí importy pri konverzii vašich zdrojov na Python 3.
Zdá sa teda, že nie je možné urobiť presne to, čo chcete, ale môžete použiť príslušné funkcie Pythonu3 z urllib.request
.
Na začiatku vášho python skriptu by malo byť nasledovné:
import urllib2
potom môžete pokračovať voľným príkladom, ako je nasledujúci:
response = urllib2.urlopen('http://pythonforbeginners.com/')
print response.info()
html = response.read()
response.close() # best practice to close the file
alebo môžete pokračovať po 'import urllib2' s týmto voľným príkladom takto:
page = urllib2.urlopen('http://0.0.0.0')
print page.info()