我正在关注这个web.py Hello World示例:
现在我得到了“Hello World!”上面的例子完全可以在我的浏览器中运行,但是当我想根据需要更改应用程序时,例如像这样制作一个完整的AJAX应用程序:
urls = ('/(.*)', 'Index')
application = web.application(urls, globals())
web.config.debug = True
class Index:
def POST(self):
content = web.input(_method='post')
return 'Ajax Test Data'
if __name__ == '__main__':application.run()
我收到以下错误(即使我对Linode的“应用程序”功能进行了少量更改)
uWSGI错误
找不到Python应用程序
如何才能使用我自己的代码?
我卸载了Debian软件包,并使用内置Python安装了pip软件包。我还必须清理/统一我的.ini和-xml配置文件。
然后我用
启动了我的应用程序uwsgi -s /tmp/uwsgi.sock -w app
最大的帮助来自this document
但是,我遇到了web module not found error
,所以我回到了Linode示例,我正在摆弄它,仍然试图从应用程序包装器中调用我的应用程序。
答案 0 :(得分:1)
嗨,请看这个stackoverflow帖子:uwsgi error python application not found
您需要终止旧的uWSGI进程,该进程正在搜索应用程序的旧实例,因为您更改了该实例,该实例已不再存在。
答案 1 :(得分:0)
您需要将WSGI应用程序“导出”到uWSGI,而不是使用if __name__ == '__main__':application.run()
运行应用程序。默认情况下,uWSGI会查找名为application
的WSGI可调用对象,但您拥有的application
不是WSGI可调用对象。因此,请移除if __name__ == '__main__':application.run()
并将application = web.application(urls, globals())
替换为application = web.application(urls, globals()).wsgifunc()
。