Google API malfunctioning - ImportError: cannot import name 'build'
Google API malfunctioning - ImportError: cannot import name 'build'
一开始,我希望能在网上找到这个问题,但是我搜索了一段时间,没有找到有类似问题的人。当我尝试 运行 googleapiclient
模块时,它在某处有点失败 - 我不确定出了什么问题。
为了测试它,我已经开始 运行 以下文件:
import googleapiclient
print('Step one!')
import googleapiclient.discovery
print('Step two!')
from googleapiclient.discovery import build
print('Yay! All steps complete!')
第一次导入很顺利,第一个打印语句成功。然而,在那之后,一切似乎都不对劲了;
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'
我尝试使用 pip
强制重新安装模块。我已经安装了人们在类似线程上建议的任何软件包,其中人们对此软件包有问题,(谈论 apiclient
、httplib2
、oauth2client
和 uritemplate
) 我对这个 Traceback 很困惑,因为它似乎指的是我代码中的两行不同的代码。
我做错了什么?
您造成了循环导入。您的文件名为 calendar.py
,它隐藏了同名的标准库模块。正如您在回溯中看到的,_parseaddr.py
导入 calendar
,期望找到 stdlib 模块,但找到了你的模块,现在在一个圆圈中。
将文件重命名为其他名称。
一开始,我希望能在网上找到这个问题,但是我搜索了一段时间,没有找到有类似问题的人。当我尝试 运行 googleapiclient
模块时,它在某处有点失败 - 我不确定出了什么问题。
为了测试它,我已经开始 运行 以下文件:
import googleapiclient
print('Step one!')
import googleapiclient.discovery
print('Step two!')
from googleapiclient.discovery import build
print('Yay! All steps complete!')
第一次导入很顺利,第一个打印语句成功。然而,在那之后,一切似乎都不对劲了;
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'
我尝试使用 pip
强制重新安装模块。我已经安装了人们在类似线程上建议的任何软件包,其中人们对此软件包有问题,(谈论 apiclient
、httplib2
、oauth2client
和 uritemplate
) 我对这个 Traceback 很困惑,因为它似乎指的是我代码中的两行不同的代码。
我做错了什么?
您造成了循环导入。您的文件名为 calendar.py
,它隐藏了同名的标准库模块。正如您在回溯中看到的,_parseaddr.py
导入 calendar
,期望找到 stdlib 模块,但找到了你的模块,现在在一个圆圈中。
将文件重命名为其他名称。