Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python导入错误“;没有名为appengine.ext的模块;_Python_Google App Engine - Fatal编程技术网

python导入错误“;没有名为appengine.ext的模块;

python导入错误“;没有名为appengine.ext的模块;,python,google-app-engine,Python,Google App Engine,运行此代码后,我发现导入错误:- 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.re

运行此代码后,我发现导入错误:-

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

看起来App Engine SDK没有安装,或者至少Python运行时找不到它

请阅读并按照此处的说明进行操作:

他们会告诉您如何安装适用于Python的App Engine SDK。

试试:

import google
print google.__path__
查看您正在导入的内容。

import sys
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']
sys.path.insert(1,'/Users//googlecloudsdk/platform/google_appengine') sys.path.insert(1,'/Users//googlecloudsdk/platform/google_appengine/lib/yaml/lib') sys.path.insert(1,“lib”) 如果sys.modules中的“google”: del sys.modules['google']

这为我解决了问题

我也遇到了同样的问题,因为我在下载和安装SDK之前安装了gcloud。pip安装创建了一个python包google,其中不包含appengine子模块(可在SDK文件夹中找到)。我卸载了gcloud和相关软件包。然后pip安装了google cloud bigquery,这是我从gcloud需要的唯一软件包。现在一切正常。

检查是否在同一个包中命名了某个文件google.py:),因为这可能会影响google.appengine.ext的导入。我也犯了同样的错误:

python import error “No module named appengine.ext”

删除文件解决了这个问题

我在使用AWS Lambda调用Google Analytics API时遇到了类似的错误

(Schweigi)的变通方法帮助了我

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中面临此问题的人。

第一个可能的原因:

您没有在google cloud sdk中安装python库,因此可以以管理员身份在cmd中运行:

gcloud组件安装应用程序引擎python

第二个可能的原因:

您的IDE未成功进入google库,它们存在于:

C:\ProgramFiles(x86)\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine

或在:

C:\Users\[您的用户]\AppData\Local\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine


您可以在附加的链接中看到如何将这些库添加到IDE外部库:

我在python中遇到了这个错误:

from google.appengine.api import search
ImportError: No module named appengine.api
我认为这与这条线索中发生的事情类似

因此,我的解决方案是运行“dev_appserver.py‘your yaml file’”。我通过以下链接获得了此解决方案:

(一)

(二)


希望这有帮助

你是怎么安装的?检查它是否在PYTHONPATH上。如果您试图在交互式Python环境中运行它,则必须修改sys.path,如下面的注释所述。如果计划为web应用程序提供服务,则应使用dev_appserver.py运行应用程序。命令应该是/platform/google\u appengine/dev\u appserver.py app.yamlI不知道你为什么删除了我的答案。我有完全相同的错误,并有文件google.py导致了这个问题。所以对我来说,这就是答案。也许这不是对你的确切情况的回答,但它是对我的情况的回答。另外,我收到了与错误完全相同的消息:“python导入错误”没有名为appengine.ext的模块,因此请返回我的答案。您好,我按照您指定的链接上的说明进行了操作,错误仍然存在。@NamitaMaharanwar我通过终端运行了以下命令(我使用Mac):
export PYTHONPATH=”$PYTHONPATH:/usr/local/google\u appengine:/usr/local/google\u appengine/lib/:/usr/local/google\u appengine/lib/yaml/“
。您必须配置到库的路径。@JaquelinePassos不太明白为什么,但设置
PYTHONPATH
是唯一对我有效的方法。粘贴导出PYTHONPATH=”后仍然不起作用。“$PYTHONPATH:/usr/local/google\u appengine:/usr/local/google\u appengine/lib/:/usr/local/google\u appengine/lib/yaml/“下面是另一个修复方法:查看
导入google
打印(谷歌路径)
。如果python使用的是缺少appengine的站点包和dist包,请使用-sS启动python,或者只删除那些
google
folders>>>导入google回溯(最近一次调用):文件“”,第1行,在ImportError中:没有名为google>>>打印google的模块。\uu路径\uuu回溯(最近一次调用):文件““,第1行,在NameError中:名称‘google’没有定义这对我有帮助。它向我指出了自制的
protobuf
软件包,它安装了自己版本的
google
模块。删除它修复了问题。我尝试了上面的方法,但得到的['C:\\Python27\\lib\\site packages\\google']不是正确的位置。然后,我使用下面的技巧将这段代码放在我的Pycharm GAE测试文件的顶部:import sys if'google'in sys.modules:del sys.modules['google']这就解决了我的问题。现在来了解原因。所以我从Pycon看了David Beazley的模块和软件包视频。在完成导入谷歌和打印技巧后,我发现谷歌指向网站包。在那里,我发现了一个以.pth结尾的文件(这些文件可以修改您的路径),它名为google_auth-1.5.1-py3.6-nspkg.pth,我将扩展名改为.#pth,因此它没有加载,所有的文件都工作正常。现在它指向“C:\\Program Files(x86)\\Google\\Cloud SDK\\Google Cloud SDK\\platform\\Google\u appengine\\Google”,这是我的Google Cloud SDK,而不是我不再使用的旧应用程序引擎SDK。谢谢Brian Kay Walker。花了几个小时试图找出我的模块没有导入的原因,这让人恼火。在我的网站包中找到“谷歌”,并将其删除,但仍然无法工作。谁知道.pth文件甚至存在?你到底把这个代码放在哪里了?它是在
appengine_config.py
文件中还是其他地方?此代码将放在主执行方法的开头,它正在添加对GAE包的引用。这也是一个旧代码,自从我上次编写它以来,情况已经发生了变化。