当前位置: 首页 > 面试题库 >

如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?

邢凯歌
2023-03-14
问题内容

我们收到一个错误:

ImportError:没有名为OAuth2Client的模块

我们注意到有关该主题的数十个问题,许多未回答的问题,以及至少一个回答,描述了从Google App Engine SDK复制文件的解决方案。

但是,这种方法似乎很乏味,因为所有依赖项还不清楚。如果我们复制过来oauth2client然后运行,则下一个错误是缺少另一个模块。修复此问题,然后缺少另一个模块,依此类推,等等。

具有讽刺意味的是,我们可以在PyCharm中看到从Google App Engine SDK列出的所有所需文件和模块,但脚本似乎无法访问它们。

有没有更好的方法来提取oauth2clientPython在App Engine上运行所需的所有文件?


问题答案:

答案是文件中的“供应商”。

我们根据此文档https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring
和此SO答案找到了解决此问题的快速方法

  1. 在与app.yaml文件相同的文件夹中创建一个名为“ lib ”的新文件夹。(您可以命名其他名称。只需在下面使用该名称即可。)

  2. 在与app.yaml文件相同的文件夹中创建一个名为 appengine_config.py 的空文件

  3. 在该appengine_config.py文件中添加两行:

from google.appengine.ext import vendor vendor.add('lib')

  1. 在终端上,导航到包含该文件的目录,然后执行以下命令:

sudo pip install -t lib google-api-python-client

导入错误将消失,您还将拥有所有从属模块。



 类似资料:
  • 问题内容: 我有一个与此问题非常相似的问题,但仍落后了一步。我在Windows 7( 对不起 )64位系统上仅安装了一个Python 3版本。 我在此链接后安装了numpy-如问题中所述。安装进行得很好,但是当我执行时 我收到以下错误: 导入错误:没有名为numpy的模块 我知道这可能是一个超级基本的问题,但我仍在学习。 谢谢 问题答案: NumPy版本1.5.0中添加了对Python 3的支持

  • 问题内容: 我正在使用centos linux。 我有Django的python 2.6,现在我升级到了python 2.7。 Python 2.6位于/usr/lib/python2.6中。 Python 2.7位于/usr/local/lib/python2.7中。 它们都具有site-packages目录,并且都包含django 1.2。 如果我运行python,我将获得2.7版本。 我的问

  • 问题内容: 我看到很多这些错误。我已经尝试了所有我想做的事情,但还没有弄清楚。 我正在开发运行python 2.5和Django 1.3的开发服务器。在解压缩tar.gz下载文件后,使用python setup.py install安装了Django 1.3。 一切正常,我很少需要运行,但是尝试使用新的应用程序,并且遇到了问题。 好的,所以我有PATH问题。 从Django安装程序中,我再次检查目

  • 我有一个与这个问题非常相似的问题。我的Windows 7 64位系统上只安装了一个版本的python 3.5。我通过官方网站安装了Anaconda3.4,正如问题中所建议的那样。安装进行得很顺利,但当我想导入时(我只是从命令行键入python) 然后我退出并键入 已满足要求(使用--upgrade to upgrade):d:\program Files\anaconda3\lib\site软件包

  • 运行此代码后,我发现导入错误:- 如何使用google.apengine.ext

  • 我正在尝试将代码从bitbucket部署到AWS Elastic beanstalk。从bitbucket部署代码时,我面临导入boto3问题。 但在我以前的docker形象中,工作很好。 旧Docker文件 在Python2.7中,一切正常。当我将python版本从2.7升级到3.7时,出现了这个导入错误。 Docker文件 Python脚本 当我运行这个脚本文件时,我得到了 导入boto3重要