Google API 出现故障 - 导入错误:无法导入名称“build”

Ran*_*ium 6 python google-calendar-api google-api-python-client

起初,我希望我能在互联网上的任何地方找到这个问题,但我搜索了一段时间,找不到任何有类似问题的人。当我尝试运行该googleapiclient模块时,它在某处有点失败 - 我不确定出了什么问题。为了测试它,我已经开始运行以下文件:

import googleapiclient
print('Step one!')
import googleapiclient.discovery
print('Step two!')
from googleapiclient.discovery import build
print('Yay! All steps complete!')
Run Code Online (Sandbox Code Playgroud)

第一次导入很顺利,因为第一个打印语句已成功执行。然而,在那之后,一切似乎都出错了;

Step one!
Traceback (most recent call last):
  File "c:/Users/Bram/Documents/My Project/src/test.py", line 3, in <module>
    import googleapiclient.discovery
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleapiclient\discovery.py", line 32, in <module>
    from six.moves import http_client
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\site-packages\six.py", line 92, in __get__
    result = self._resolve()
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\site-packages\six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\site-packages\six.py", line 82, in _import_module
    __import__(name)
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 71, in <module>
    import email.parser
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\email\parser.py", line 12, in <module>
    from email.feedparser import FeedParser, BytesFeedParser
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\email\feedparser.py", line 27, in <module>
    from email._policybase import compat32
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\email\_policybase.py", line 9, in <module>
    from email.utils import _has_surrogates
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\email\utils.py", line 33, in <module>
    from email._parseaddr import quote
  File "C:\Users\Bram\AppData\Local\Programs\Python\Python36-32\lib\email\_parseaddr.py", line 16, in <module>
    import time, calendar
  File "c:\Users\Bram\Documents\My Project\src\calendar.py", line 5, in <module>
    from googleapiclient.discovery import build
ImportError: cannot import name 'build'
Run Code Online (Sandbox Code Playgroud)

我尝试使用pip. 我已经安装任何包,人们对类似的线程建议,人们不得不用这个包的麻烦,(谈到apiclienthttplib2oauth2clienturitemplate,我真搞不清楚这个回溯,因为它似乎是指在我的代码两个不同的线路。

我究竟做错了什么?

Dan*_*man 16

您造成了循环导入。您的文件名为calendar.py,它隐藏了同名的标准库模块。正如您在回溯中看到的那样,_parseaddr.pyimportscalendar期望找到 stdlib 模块,但是却找到了您的模块,并且现在在一个圆圈中。

将您的文件重命名为其他名称。