在pycharm中导入请求时,发生导入错误

问题描述 投票:0回答:1

导入请求时,会出现以下错误消息。

    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中仍然会发生。

python pip pycharm
1个回答
0
投票
注意回溯中的这些行:

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,您的问题应得到解决
© www.soinside.com 2019 - 2024. All rights reserved.