[英]Why does manage.py execution script run twice when using it under if __name__ == “__main__”
[英]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.