при импорте запросов в pycharm возникает ошибка импорта - PullRequest
0 голосов
/ 20 октября 2019

При импорте запросов появляется следующее сообщение об ошибке.

    Traceback (most recent call last):
  File "C:/Users/moter/PycharmProjects/compsci/alarm_project/get_events.py", line 1, in <module>
    import requests
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\__init__.py", line 43, in <module>
    import urllib3
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\__init__.py", line 7, in <module>
    from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 11, in <module>
    from .exceptions import (
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 199, in load_module
    mod = mod._resolve()
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 113, in _resolve
    return _import_module(self.mod)
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 82, in _import_module
    __import__(name)
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 71, in <module>
    import email.parser
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\parser.py", line 12, in <module>
    from email.feedparser import FeedParser, BytesFeedParser
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\feedparser.py", line 27, in <module>
    from email._policybase import compat32
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\_policybase.py", line 9, in <module>
    from email.utils import _has_surrogates
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\utils.py", line 33, in <module>
    from email._parseaddr import quote
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\_parseaddr.py", line 16, in <module>
    import time, calendar
  File "C:\Users\moter\PycharmProjects\compsci\alarm_project\calendar.py", line 1, in <module>
    from O365 import Account
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\__init__.py", line 8, in <module>
    from .account import Account
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\account.py", line 1, in <module>
    from .connection import Connection, Protocol, MSGraphProtocol
  File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\connection.py", line 9, in <module>
    from requests import Session
ImportError: cannot import name 'Session' from 'requests' (C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\__init__.py)

CODE:

import requests
import sys

print(sys.path)

r = requests.get("https://openweathermap.org/")
print(r.status_code)

Я обновил запросы как самого pip, так и pycharm. Кроме того, я пробовал разные версии Python, и ошибка сохраняется. Однако ошибка не возникает в IDLE, но все же возникает в других IDE.

1 Ответ

0 голосов
/ 21 октября 2019

Обратите внимание на следующие строки в вашей трассировке:

File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\email\_parseaddr.py", line 16, in <module>
import time, calendar
File "C:\Users\moter\PycharmProjects\compsci\alarm_project\calendar.py", line 1, in <module>
from O365 import Account

У вас есть файл с именем calendar.py, который конфликтует с чем-то, что модуль email пытается импортировать. Ваш файл calendar.py затем продолжает импортировать что-то из O365, что в итоге пытается импортировать Session из requests:

  from O365 import Account
File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\__init__.py", line 8, in <module>
  from .account import Account
File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\account.py", line 1, in <module>
  from .connection import Connection, Protocol, MSGraphProtocol
File "C:\Users\moter\AppData\Local\Programs\Python\Python37\lib\site-packages\O365\connection.py", line 9, in <module>
  from requests import Session

, что в итоге является циклическим импортом, вызваннымконфликтующее имя файла. Поэтому просто переименуйте ваш calendar.py, например, на mycalendar.py, и ваша проблема должна быть решена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...