我正在通过dev_appserver在本地运行标准App Engine环境,并且无法摆脱以下错误:
ImportError:没有名为google.auth的模块
完整追溯(用...
替换了个人详细信息):
Traceback (most recent call last):
File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/Users/.../.../main.py", line 6, in <module>
from services.get_campaigns import get_campaigns
File "/Users/.../.../get_campaigns.py", line 3, in <module>
from googleads import adwords
File "/Users/.../.../lib/googleads/__init__.py", line 17, in <module>
from ad_manager import AdManagerClient
File "/Users/.../lib/googleads/ad_manager.py", line 28, in <module>
import googleads.common
File "/Users/.../lib/googleads/common.py", line 51, in <module>
import googleads.oauth2
File "/Users/.../lib/googleads/oauth2.py", line 28, in <module>
import google.auth.transport.requests
File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1154, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.auth
我确实安装了google.auth,如pip show google.auth
所示:
Name: google-auth
Version: 1.6.3
Summary: Google Authentication Library
Home-page: https://github.com/GoogleCloudPlatform/google-auth-library-python
Author: Google Cloud Platform
Author-email: jonwayne+google-auth@google.com
License: Apache 2.0
Location: /Users/.../Library/Python/2.7/lib/python/site-packages
Requires: rsa, pyasn1-modules, cachetools, six
Required-by: googleads, google-auth-oauthlib, google-auth-httplib2, google-api-python-client
我已经升级了所有需要google.auth的模块- googleads,google-auth-oauthlib,google-auth-httplib2,google-api-python-clien t-但没有结果。
我不太确定接下来要采取什么措施来调试此问题。这里有人可以指出正确的方向吗?
答案 0 :(得分:0)
您的google.auth
安装在系统的Python网站软件包中,而不是您的应用中:
位置:/ Users /.../ Library / Python / 2.7 / lib / python / site-packages
您需要在应用程序内部安装应用程序的python依赖项-请注意您应遵循的Copying a third-party library过程中的-t lib/
pip选项:
使用带有
-t <directory>
标志的pip(版本6或更高版本)将库复制到上一步中创建的文件夹中。 例如:pip install -t lib/ <library_name>
答案 1 :(得分:0)
经过反复试验,我发现了这个错误:一个python运行时版本问题。
在我的app.yaml文件中指定:
service: default
runtime: python27
api_version: 1
threadsafe: false
我将运行时更改为:
runtime: python37
感谢@AlassaneNdiaye在评论中向我指出了这个方向。