ImportError:没有名为apiclient.discovery的模块
我在Google App Engine的Python中得到了这个错误,使用了Google Translate API,但是我不知道如何解决,
<module> from apiclient.discovery import build ImportError: No module named apiclient.discovery
我将尝试设置指向Google App Engine SDK的环境 ,然后再次上传到Google Apps Engine, 总是得到错误 ,
错误:服务器错误
服务器遇到错误,无法完成您的请求。 如果问题仍然存在,请报告您的问题,并提及此错误消息和导致它的查询。
请告诉我如何解决,
谢谢
更新:修复按照Nijjin的帮助,我通过添加以下文件夹来解决问题,
apiclient, gflags, httplib2, oauth2client, uritemplate
你应该能够通过这个简单的安装来获得这些依赖关系:
sudo pip install --upgrade google-api-python-client
这在python的快速入门页面中有描述。
apiclient
是图书馆的原始名称。
在某个时候,它被切换到了googleapiclient
。
如果您的代码在Google App Engine上运行,则两者都应该有效。
如果你自己运行应用程序,安装google-api-python-client ,两者都应该可以工作。
虽然,如果我们看一下apiclient
包的__init__.py
模块的源代码 ,我们可以看到apiclient
模块只是为了向后兼容而保留的。
保留作为googleapiclient别名的apiclient。
所以,你真的应该在你的代码中使用googleapiclient
,因为apiclient
别名只是保持不破坏遗留代码。
# bad from apiclient.discovery import build # good from googleapiclient.discovery import build
apiclient
不在appengine运行时提供的第三方库列表中: http : //developers.google.com/appengine/docs/python/tools/libraries27 。
您需要将apiclient
复制到您的项目目录中,您也需要复制这些uritemplate
& httplib2
。
注意:文档列表中未提供的任何第三方库必须复制到您的appengine项目目录
下载包含该库及其所有依赖项的Google API Python客户端库的下载,在项目的下载部分命名为google-api-python-client-gae- <version> .zip 。 只需将其解压缩到您的App Engine项目中即可。
对于应用程序引擎项目,你必须通过input来在本地安装lib
pip install -t lib google-api-python-client
在这里阅读更多
由于安装URITemplate模块时出现了一个错误,我也遇到了同样的问题。
这解决了这个问题:
pip install --force-reinstall uritemplate.py
确保你只安装了google-api-python-client
。 如果你已经安装好了,会造成碰撞。 所以,运行以下内容:
sudo pip uninstall apiclient
我通过重新安装软件包解决了这个问题:
pip install --force-reinstall google-api-python-client
“google-api-python-client”需要:
pip install uritemplate.py
解决GAE开发服务器上的问题:
from googleapiclient.discovery import build ImportError: No module named googleapiclient.discovery
我遇到了同样的问题。 这工作:
>>> import pkg_resources >>> pkg_resources.require("google-api-python-client") [google-api-python-client 1.5.3 (c:\python27), uritemplate 0.6 (c:\python27\lib\site-packages\uritemplate-0.6-py2.7.egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.egg), oauth2client 3.0.0 (c:\python27\lib\site-packages\oauth2client-3.0.0-py2.7.egg), httplib2 0.9.2 (c:\python27\lib\site-packages\httplib2-0.9.2-py2.7.egg), simplejson 3.8.2 (c:\python27\lib\site-packages\simplejson-3.8.2-py2.7-win32.egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.egg), rsa 3.4.2 (c:\python27\lib\site-packages\rsa-3.4.2-py2.7.egg), pyasn1-modules 0.0.8 (c:\python27\lib\site-packages\pyasn1_modules-0.0.8-py2.7.egg), pyasn1 0.1.9 (c:\python27\lib\site-packages\pyasn1-0.1.9-py2.7.egg)] >>> from apiclient.discovery import build >>>
当我使用sudo的时候,它只与我一起工作:
sudo pip install --upgrade google-api-python-client
- 如何在Google App Engine中导入模块?
- 所有App Engine图像的列表service get_serving_url()URI选项
- Eclipse和Google App Engine:ImportError:没有名为_sysconfigdata_nd的模块; 无法识别的参数:–high_replication
- 使用标准库可以在Go中嵌套模板吗? (Google App Engine)
- NameError:未定义全局名称“execfile”,尝试在Google App Engine启动器上运行应用程序
- 在Google App Engine上selectJava vs Python
- 去,AppEngine:如何构build模板的应用程序
- 上传Google App Engine中的文件
- Google地理编码API – REQUEST_DENIED