如果 __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 中托管时,是否可以 运行 后台进程(检查代码的其他问题)?
为什么if __name__ == "__main__":
里面的代码没有执行?
当 web.py 为 运行 且没有 Apache 时,此方法运行良好。
if __name__ == '__main__':
中的代码不会 运行 因为那不是 Apache 运行s 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
我有与我在 if __name__ == "__main__":
中的代码没有被执行。
在 Apache 中托管时,是否可以 运行 后台进程(检查代码的其他问题)?
为什么if __name__ == "__main__":
里面的代码没有执行?
当 web.py 为 运行 且没有 Apache 时,此方法运行良好。
if __name__ == '__main__':
中的代码不会 运行 因为那不是 Apache 运行s 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