import urllib3 работает в терминале, но не в IDLE

Я использую Mac OSX 10.10.5, Python версии 3.5.2 и IDLE версии 3.5.2.

Я новичок в Python и пытаюсь использовать модуль urllib3 в IDLE. Я успешно использовал следующий код в Терминале (возвращается число 200):

import urllib3
http = urllib3.PoolManager()
r = http.request('GET', 'http://httpbin.org/robots.txt')
r.status

Но этот же код не работает в IDLE. В IDLE я получаю следующую ошибку:

Traceback (most recent call last):
  File "/Users/faculty/Documents/Python/Scraping_v1_d1.py", line 1, in <module>
    import urllib3
ImportError: No module named 'urllib3'

Я также пытался использовать в IDLE другой код, например следующий:

import urllib3
htmlfile = urllib3.urlopen("http://google.com")
htmltext = htmlfile.read()
print (htmltext)

Но я получаю ту же ошибку.

В папке моих сайтов-пакетов у меня есть эти папки pip и urllib3:

1) пип

2) pip-9.0.1.dist-информация

3) urllib3

4) urllib3-1.19.dist-информация

Я нашел один источник, который предложил мне попробовать сделать следующее:

import sys
sys.version
sys.path

Это ответ в терминале:

import sys sys.version '2.7.10 (по умолчанию, 14 июля 2015 г., 19:46:27) \n[GCC 4.2.1, совместимая с Apple LLVM 6.0 (clang-600.0.39)]' sys.path ['', ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library /Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/ python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2. 7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/ Дополнительно/lib/python/PyObjC', '/Libr ary/Python/2.7/сайт-пакеты']

Когда я ввожу тот же код в IDLE, ничего не происходит (это все, что я получаю):

========= ПЕРЕЗАПУСК: /Users/faculty/Documents/Python/Scraping_v1_d1.py =========

Я много искал в Интернете и на stackoverflow.com, но не могу найти решение. У кого-нибудь есть понимание?

Спасибо!


person Tori    schedule 15.11.2016    source источник
comment
Обратите внимание на терминал, это пути версии 2.7. OSX имеет версию 2.7 и сохраняет ее, даже если вы также устанавливаете 3.5.2. Я подозреваю, что вы используете python на терминале. Попробуйте python3 и посмотрите, что произойдет. urllib3 все еще должен работать там, но, надеюсь, вы приближаетесь к проблеме.   -  person tdelaney    schedule 15.11.2016
comment
Глядя на мой Linux Mint, python-urllib3 — это отдельный пакет. Возможно, вам по-прежнему потребуется установить собственную версию. Я предпочитаю использовать версии платформы (у меня Debian Linux и установка с sudo apt-get install python-urllib3, но OSX будет другой) последним версиям Python (sudo pip3 install urllib3), но я могу быть радикалом в этом отношении!   -  person tdelaney    schedule 15.11.2016
comment
Кто-то написал правильный ответ. Вы должны отметить это как правильное.   -  person user48956    schedule 10.05.2017


Ответы (1)


Как сообщение об ошибке уже показывает:

У вас есть две версии Python на вашем Mac. Python 3.5 и Python 2.7 (по умолчанию).

Процесс IDLE зависит от версии Python, в которой запускается IDLE. Поэтому убедитесь, что вы используете ту же версию Python (тот же IDLE). Команда «pip install urllib3» работает только для версии Python по умолчанию, которая отличается от вашей версии Python в IDLE.

Так что вам просто нужно установить urllib3 и для Python3.5.

person nrhode    schedule 15.11.2016