【问题标题】:Can't change Python Web.py application Linode example无法更改 Python Web.py 应用程序 Linode 示例
【发布时间】:2014-03-13 21:58:21
【问题描述】:

我正在关注这个 web.py Hello World 示例:

https://library.linode.com/web-servers/nginx/python-uwsgi/ubuntu-12.04-precise-pangolin#sph_more-information

现在我得到了“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 示例,目前正在摆弄它,仍在尝试从应用程序包装器内部调用我的应用程序。

【问题讨论】:

    标签: python uwsgi web.py


    【解决方案1】:

    嗨,看看这个 stackoverflow 帖子:uwsgi error python application not found

    您需要终止旧的 uWSGI 进程,该进程正在搜索应用程序的旧实例,该实例已不再存在,因为您对其进行了更改。

    【讨论】:

    • 我总是在应用程序更改后重新启动 uwsgi。我只是不知道如何让它用我自己的代码运行。我几乎要求助于 LAMP,因为这让我非常头疼。现在找到了,也许它有帮助.. webtest.pythonpaste.org/en/latest
    【解决方案2】:

    您需要将 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()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2023-03-09
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多