Python Openshift上的Flask框架无法加载模块
因此,我从github上的OS quickstart在OS中创建了一个flask应用程序。该应用程序在我的本地系统上运行良好。当我将应用程序推送到操作系统时,它会生成,但浏览器中出现错误500 如有任何想法或帮助,将不胜感激 以下是应用程序文件中的源代码:Python Openshift上的Flask框架无法加载模块,python,flask,jinja2,paas,openshift,Python,Flask,Jinja2,Paas,Openshift,因此,我从github上的OS quickstart在OS中创建了一个flask应用程序。该应用程序在我的本地系统上运行良好。当我将应用程序推送到操作系统时,它会生成,但浏览器中出现错误500 如有任何想法或帮助,将不胜感激 以下是应用程序文件中的源代码: #!/usr/bin/python import os virtenv = os.environ['APPDIR'] + '/virtenv/' os.environ['PYTHON_EGG_CACHE'] = os.path.join(v
#!/usr/bin/python import os
virtenv = os.environ['APPDIR'] + '/virtenv/'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass
from run import app as application
以下是run.py文件的源代码
from app import app
app.run(debug = True)
以下是我的站点哈希ID日志中的错误:
[Sun Aug 05 15:46:08 2012] [error] * Running on http://127.0.0.1:5000/
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] mod_wsgi (pid=28484): Target WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application' cannot be loaded as Python module.
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] mod_wsgi (pid=28484): Exception occurred processing WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application'.
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] Traceback (most recent call last):
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application", line 13, in <module>
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] from run import app as application
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/run.py", line 2, in <module>
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] app.run(debug = True)
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Flask-0.9-py2.6.egg/flask/app.py", line 739, in run
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] run_simple(host, port, self, **options)
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Werkzeug-0.8.3-py2.6.egg/werkzeug/serving.py", line 613, in run_simple
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] test_socket.bind((hostname, port))
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "<string>", line 1, in bind
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] error: [Errno 13] Permission denied
[Sun Aug 05 15:46:09 2012] [error] * Running on http://127.0.0.1:5000/
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] mod_wsgi (pid=31302): Target WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application' cannot be loaded as Python module.
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] mod_wsgi (pid=31302): Exception occurred processing WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application'.
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] Traceback (most recent call last):
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application", line 13, in <module>
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] from run import app as application
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/run.py", line 2, in <module>
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] app.run(debug = True)
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Flask-0.9-py2.6.egg/flask/app.py", line 739, in run
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] run_simple(host, port, self, **options)
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Werkzeug-0.8.3-py2.6.egg/werkzeug/serving.py", line 613, in run_simple
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] test_socket.bind((hostname, port))
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "<string>", line 1, in bind
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] error: [Errno 13] Permission denied
在mod_wsgi下托管时,不应尝试运行Flask内置开发服务器。返回并检查Flask中的mod_wsgi文档,了解您打算做什么
在mod_wsgi下托管时,不应尝试运行Flask内置开发服务器。返回并检查Flask中的mod_wsgi文档,了解您打算做什么
您是否查阅了flask网站上的以下描述: 问题:应用程序给出了权限错误 可能是由于您的应用程序以错误的用户身份运行。确保应用程序需要访问的文件夹具有正确的 设置权限,应用程序以正确的用户和 WSGIDaemonProcess指令的组参数
您是否查阅了flask网站上的以下描述: 问题:应用程序给出了权限错误 可能是由于您的应用程序以错误的用户身份运行。确保应用程序需要访问的文件夹具有正确的 设置权限,应用程序以正确的用户和 WSGIDaemonProcess指令的组参数
所以我终于找到了我的代码的错误所在。我的run.py文件中缺少一行,因此错误的文件如下所示: 不正确的文件:
from app import app
app.run()
这是已更正的工作文件:
from app import app
if __name__ == "__main__": #Need this line for Openshift
app.run()
当部署到Apache之类的生产服务器时,显然需要if语句,因此我终于找到了代码的错误所在。我的run.py文件中缺少一行,因此错误的文件如下所示: 不正确的文件:
from app import app
app.run()
这是已更正的工作文件:
from app import app
if __name__ == "__main__": #Need this line for Openshift
app.run()
当部署到Apache等生产服务器时,显然需要if语句。正确-问题是,当使用mod_wsgi或其他类似工具时,应用程序将由mod_wsgi启动和管理。Flask.run启动开发服务器。如果您在mod_wsgi加载时没有阻止开发服务器启动,那么Flask的服务器会尝试绑定到一个端口,该端口是它正在运行的用户没有权限执行的,因此出现错误。正确-问题是,当使用mod_wsgi或其他类似工具时,应用程序将由mod_wsgi启动和管理。Flask.run启动开发服务器。如果您在mod_wsgi加载时没有停止dev服务器的启动,那么Flask的服务器会尝试绑定到一个端口——它正在运行的用户没有这样做的权限,因此会出现错误。