Я використовую Python 3.5.1 для Mac. Я хочу використовувати urllib2. Я спробував встановити його, але мені сказали, що він був розділений на urllib.request і urllib.error для Python 3.
Моя команда (поки що запускається з каталогу bin фреймворку, тому що він не знаходиться на моєму шляху):
sudo ./pip3 install urllib.request
Повертається:
Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request
Я отримував таку саму помилку раніше, коли намагався встановити urllib2 одним махом.
Попередження: Дослідження безпеки виявили кілька отруєних пакетів на PyPI, включаючи пакет з назвою urllib
, який буде дзвонити додому при встановленні. Якщо ви використовували pip install urllib
через деякий час після червня 2017 року, видаліть цей пакет якнайшвидше.
Ви не можете і не повинні цього робити.
urllib2
- це назва бібліотеки, що входить до складу Python 2. Ви можете використовувати бібліотеку urllib.request
, що входить до складу Python 3. Бібліотека urllib.request
працює так само, як і urllib2
в Python 2. Оскільки вона вже включена, вам не потрібно її встановлювати.
Якщо ви слідуєте підручнику, який говорить вам використовувати urllib2
, то ви можете зіткнутися з більшою кількістю проблем. Ваш підручник було написано для Python 2, а не для Python 3. Знайдіть інший підручник або встановіть Python 2.7 і продовжте вивчення цієї версії. Ви побачите, що urllib2
постачається з цією версією.
Крім того, встановіть бібліотеку requests
для більш високого рівня і більш простого у використанні API. Вона буде працювати як на Python 2, так і на 3.
За матеріалами docs:
Примітка. Модуль urllib2 був розділений на декілька модулів у Python 3 з назвами urllib.request та urllib.error. Інструмент 2to3 автоматично адаптує імпорт при перетворенні ваших джерел на Python 3.
Таким чином, здається, що неможливо зробити саме те, що ви хочете, але ви можете використовувати відповідні функції python3 з urllib.request
.
На початку вашого python скрипту має бути наступне:
import urllib2
Після цього ви можете продовжити з вільним прикладом на кшталт наведеного нижче:
response = urllib2.urlopen('http://pythonforbeginners.com/')
print response.info()
html = response.read()
response.close() # best practice to close the file
або після 'import urllib2' з цим вільним прикладом, як показано нижче:
page = urllib2.urlopen('http://0.0.0.0')
print page.info()