我正在测试Google cloud,首先我想在我的PC上开发一些东西,然后再在google Cloud上使用。我正在使用APACHE,并以这种方式对其进行配置,当我转到页面localhost/wsgi_app时,我会看到实际存储在/svc/http/webapp2文件夹中的页面。包含我的应用程序的文件wsgi_app.py存储在子文件夹webapp2中。一切正常。我提供这些信息,以防它可能起到任何作用。
我遇到的问题是从库中导入。我在Django上做过,现在试着把它移到webapp2上。
我的程序的前几行如下所示:
import webapp2
import MySQLdb
import json我有一个名为test.py的文件,其中包含一些类和函数。它与wsgi_app.py在同一个文件夹中。我想把它包含进来,但是这似乎行不通:
import webapp2
import MySQLdb
import json
from test import *我的test.py包含类'Quote‘的定义,但当我调用页面时,我看到了错误
NameError: global name 'Quote' is not defined当我把文件test.py的内部放到文件wsgi_app.py中时,一切正常。我的目标是将代码分成几个文件。
你知道为什么吗:
from test import *不起作用吗?它可以在我写的任何其他程序上工作,所以为什么不在这里呢?
发布于 2017-10-10 02:35:48
问题解决了。
这个问题与weapp2无关,而是与WSGI和python搜索文件的路径有关。最简单的解决方案是添加如下内容;execfile("/srv/http/test.py")将导入该文件。
除此之外,这里有一篇很好的文章http://blog.dscpl.com.au/2014/09/python-module-search-path-and-modwsgi.html
https://stackoverflow.com/questions/46632607
复制相似问题