Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Openshift上的Flask框架无法加载模块_Python_Flask_Jinja2_Paas_Openshift - Fatal编程技术网

Python Openshift上的Flask框架无法加载模块

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

因此,我从github上的OS quickstart在OS中创建了一个flask应用程序。该应用程序在我的本地系统上运行良好。当我将应用程序推送到操作系统时,它会生成,但浏览器中出现错误500

如有任何想法或帮助,将不胜感激

以下是应用程序文件中的源代码:

#!/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的服务器会尝试绑定到一个端口——它正在运行的用户没有这样做的权限,因此会出现错误。