如何防止" ImportError:没有名为oauth2client.client的模块"在Google App Engine上?

时间:2017-05-16 21:21:12

标签: python google-app-engine oauth-2.0

我们收到错误:

  

ImportError:没有名为OAuth2Client的模块

我们已经注意到围绕此主题的大量问题,许多未回答以及至少一个答案描述了从Google App Engine SDK复制文件的解决方案。

然而,这种方法似乎很乏味,因为所有的依赖关系都不清楚。如果我们复制oauth2client然后运行,则下一个错误是另一个缺失的模块。修复,然后缺少另一个模块等,等等。

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

有没有更好的方法来提取oauth2client需要Python在App Engine上工作的所有文件?

5 个答案:

答案 0 :(得分:28)

我遇到此问题,并通过oauth2client安装pip3来解决:

pip3 install --upgrade oauth2client 

答案 1 :(得分:9)

按照google-api-python documentation的方法尝试

pip install --upgrade google-api-python-client oauth2client

答案 2 :(得分:5)

答案是"供应商"在文件中。

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

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

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

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

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

  4. 从终端导航到包含该文件的目录并执行以下命令:

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

  5. 导入错误将消失,您将拥有所有子依赖模块。

答案 3 :(得分:0)

安装WHL file

pip install oauth2client-4.1.3-py2.py3-none-any.whl

答案 4 :(得分:0)

Run this

sudo python -m pip install oauth2client