没有名为 "google.appengine]的模块 "appengine本地开发错误。

问题描述 投票:1回答:1

我正在从python27迁移到python37。我已经把python2的代码移植到python3的代码中。问题是,当我尝试运行开发服务器时,它说 ModuleNotFoundError: No module named 'google.appengine'. 我有谷歌云SDK下载。

我还下载了以下谷歌libaries。

google==2.03; google-api-core==1.17.0; google-auth==1.14.3; google-cloud==0.34.0; google-cloud-core==1.3.0; google-cloud-datastore==1.120; google-cloud-ndb==1.2.0; google-cloud-storage==1.28.0;

我正在使用CLOUD_DATASTORE。这和这个有什么关系吗?我必须迁移吗?

下面是完整的错误信息。

INFO     2020-05-12 15:58:51,741 instance_factory.py:261] Running /tmp/tmpAvEFgc/bin/pip install -r /tmp/tmpjm7s5D

INFO     2020-05-12 15:59:02,605 dispatcher.py:267] Starting module "default" running at: http://192.168.1.15:8080
INFO     2020-05-12 15:59:02,613 instance_factory.py:121] Detected Python 3.7.5

INFO     2020-05-12 15:59:03,607 instance.py:561] Cannot decide GOOGLE_CLOUD_PROJECT, using "test" as a fake value
[2020-05-12 11:59:03 -0400] [30089] [INFO] Starting gunicorn 20.0.4
[2020-05-12 11:59:03 -0400] [30089] [INFO] Listening at: http://0.0.0.0:21217 (30089)
[2020-05-12 11:59:03 -0400] [30089] [INFO] Using worker: sync
[2020-05-12 11:59:03 -0400] [30092] [INFO] Booting worker with pid: 30092
[2020-05-12 11:59:03 -0400] [30092] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/tmp/tmpAvEFgc/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/vicktree/Documents/project-noah-3/noah-app/main.py", line 19, in <module>
    from handlers.noah_handler import NoahHandler
  File "/home/vicktree/Documents/project-noah-3/noah-app/handlers/noah_handler.py", line 16, in <module>
    from google.appengine.ext import db
ModuleNotFoundError: No module named 'google.appengine'
google-app-engine google-cloud-platform google-cloud-datastore google-app-engine-python
1个回答
1
投票

这个 google.appengine 模块被内置于第一代Python (2.7) 运行时。它不能通过 pip,在第二代(3.7)运行时,或在任何Docker环境中。

使用它的唯一方法是通过编写和部署第一代App Engine应用。

根据你正在做的事情,你应该可以用客户端库调用来代替它。

请看 https:/cloud.google.comappenginedocsstandardpythonmigrat-to-python3。 更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.