Ошибка импорта python "Нет модуля с именем appengine.ext"
после запуска этого кода я обнаружил ошибку импорта: -
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
application = webapp.WSGIApplication([('/', MainPage)],debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
как использовать google.apengine.ext
Ответы
Ответ 1
Похоже, SDK App Engine не установлен или, по крайней мере, среда выполнения Python не может его найти.
прочитайте и следуйте инструкциям здесь: https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
Они расскажут вам, как установить App Engine SDK для Python.
Ответ 2
import sys
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine')
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine/lib/yaml/lib')
sys.path.insert(1, 'lib')
if 'google' in sys.modules:
del sys.modules['google']
это решает проблемы для меня
Ответ 3
Try:
import google
print google.__path__
чтобы узнать, что именно вы импортируете.
Ответ 4
У меня была такая же проблема, потому что я пытаюсь установить gcloud перед загрузкой и установкой SDK. Установка pip создала пакет python google, который не содержал подмодуль appengine (который находится в папке SDK). Я удалил gcloud и связанные пакеты. Тогда просто pip установил google-cloud-bigquery, который является единственным пакетом, который мне нужен от gcloud. Теперь все работает отлично.
Ответ 5
проверьте, если вы назвали какой-то файл google.py:) в том же пакете, потому что это может затенять импорт google.appengine.ext. У меня была такая же ошибка:
python import error "No module named appengine.ext"
и удаление файла решило проблему.
Ответ 6
Я столкнулся с подобной ошибкой при вызове Google Analytics API с использованием AWS Lambda.
Обход из (Schweigi 1) помог мне.
import googleapiclient
from googleapiclient.discovery_cache.base import Cache
class MemoryCache(Cache):
_CACHE = {}
def get(self, url):
return MemoryCache._CACHE.get(url)
def set(self, url, content):
MemoryCache._CACHE[url] = content
Использование:
service = googleapiclient.discovery.build("analyticsreporting", "v4", http=http, credentials=credentials,cache=MemoryCache())
Надеюсь, что это поможет кому-то, кто сталкивается с этой проблемой в AWS Lambda.
Ответ 7
Первая возможная причина:
Вы не устанавливаете библиотеку Python в Google Cloud SDK, поэтому вы можете запустить в CMD (как администратор):
gcloud components install app-engine-python
.
Вторая возможная причина:
Ваша IDE не удалась попасть в библиотеки Google, они существуют в:
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine
или в:
C:\Users\[your user]\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine
Вы можете увидеть в прикрепленной ссылке объяснение, как добавить эти библиотеки во внешние библиотеки IDE: fooobar.com/info/202219/...