在OpenShift的书examp中使用python3.3

2024-06-25 22:48:51 发布

您现在位置:Python中文网/ 问答频道 /正文

OpenShift最近出版了一本书《OpenShift入门》。对于刚起步的人来说,这是一个很好的指南。在

在第3章中,他们展示了如何修改模板应用程序以使用Python2.7和Flask。我们的需求是针对python3.3的。在

在第19页,对wsgi.pyis:execfile(virtualenv,dict(文件=virtualenv))。execfile在3.x中被删除了,StackOverflow中有一些关于如何翻译的例子,但是我不清楚如何将这些应用到这个例子中。在

有人对这个问题有什么见解吗?在


Tags: 文件模板应用程序flaskwsgivirtualenv指南stackoverflow
2条回答

this question所示,您可以替换该行

execfile(virtualenv, dict(__file__=virtualenv))

通过

^{pr2}$

在我看来,最好把它分成几个简单的部分。我们还应该使用一个上下文处理程序来处理文件:

with open(virtualenv, 'rb') as exec_file:
    file_contents = exec_file.read()
compiled_code = compile(file_contents, virtualenv, 'exec')
exec_namespace = dict(__file__=virtualenv)
exec(compiled_code, exec_namespace)

以这种方式分解它也会使调试更容易(实际上:可能)。我还没有测试过这个,但应该可以用。在

如果你在Python3中遇到了关于wsgi.py文件的virtualenv设置问题,我已经解决了删除它。在

这是我的wsgi.py文件和它的工作

#!/usr/bin/python

from flaskapp import app as application

if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    httpd = make_server('0.0.0.0', 5000, application)
    # Wait for a single request, serve it and quit.
    #httpd.handle_request()
    httpd.serve_forever()

相关问题 更多 >