繁体   English   中英

如果__name__ ==“ __main__”,则Apache上托管的web.py不会在一边运行代码:

[英]web.py hosted on Apache does not run code in side if __name__ == “__main__”:

我有我在这个问题中提到的相同代码。 现在,我已经在Apache上托管了相同的web.py应用程序。 但是当我启动Apache时, if __name__ == "__main__":内部的代码未执行。

当托管在Apache中时,是否可以运行backgroud进程(检查其他问题的代码)?

if __name__ == "__main__":未执行if __name__ == "__main__":为什么里面的代码?

当在没有Apache的情况下运行web.py时,此方法运行良好。

if __name__ == '__main__':内部代码不运行,因为这不是Apache运行python代码的方式。

您更有可能在mod_wsgi或uwsgi下运行python,这是让Apache与python对话的一种方式。

保留if __name__ == '__main__':东西:这对于简单的测试很有用,但是添加类似的代码块:

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()
elif under_mod_wsgi or under_uwsgi:
    app = web.application(urls, globals())
    application = app.wsgifunc()  # !!rather than app.run()

您的Process资料仍应运行(请参考其他问题)。

要检测under_mod_wsgi是否可以:

try:
    from mod_wsgi import version
    if version:
        pass
    under_mod_wsgi = True
except ImportError:
    under_mod_wsgi = False

try:
    import uwsgi
    under_uwsgi = True
except ImportError:
    under_uwsgi = False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM