Ошибка при использовании Flask_Restful в Openshift

Я пытаюсь создать приложение openshift, используя Flask restful. Мне удалось настроить приложение, следуя инструкциям на веб-сайте openshift. Но помимо этого я хочу использовать flask_restful.

Итак, я создал virtualenv и установил flask_restful. Затем, используя пример с веб-сайта Flask_restful, я скопировал пример кода и вставил его в flaskapp.py (см. пример openshift). Я также добавил Flask-RESTful==0.3.5 в requirements.txt.

Затем я смог запустить python wsgi.py, и он успешно запустился локально на моей машине. Мне удалось добиться ожидаемого результата. Я как бы ожидал, что когда я перенесу эти изменения на openshift, все будет работать гладко. Но это не дало мне сообщение 500 Internal Server Error.

Чтобы дать вам представление, вот некоторые из моих файлов

требования.txt

Flask==0.10.1
Flask-RESTful==0.3.5:

flaskapp.py

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class HelloWorld(Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run(debug=True)

wsgi.py

#!/usr/bin/python
import os

#virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/'
virtenv = os.path.join(os.environ.get('OPENSHIFT_PYTHON_DIR','.'), 'virtenv')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
    execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
    pass
#
# IMPORTANT: Put any additional includes below this line.  If placed above this
# line, it's possible required libraries won't be in your searchable path
#
from flaskapp import app as application

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

Журналы:

192.69.20.2 - - [30/Nov/2016:15:40:04 -0500] "GET / HTTP/1.1" 500 637 "-" "Wget/1.15 (linux-gnu)"
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1] mod_wsgi (pid=411796): Target WSGI script '/var/lib/openshift/583f10ac2d5271154f00001d/app-root/runtime/repo/wsgi.py' cannot be loaded as Python module.
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1] mod_wsgi (pid=411796): Exception occurred processing WSGI script '/var/lib/openshift/583f10ac2d5271154f00001d/app-root/runtime/repo/wsgi.py'.
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1] Traceback (most recent call last):
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1]   File "/var/lib/openshift/583f10ac2d5271154f00001d/app-root/runtime/repo/wsgi.py", line 15, in <module>
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1]     from myapp import app as application
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1]   File "/var/lib/openshift/583f10ac2d5271154f00001d/app-root/runtime/repo/myapp.py", line 1, in <module>
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1]     from flask import Flask
[Wed Nov 30 15:40:13 2016] [error] [client 127.5.221.1] ImportError: No module named flask
192.69.20.2 - - [30/Nov/2016:15:40:13 -0500] "GET / HTTP/1.1" 500 637 "-" "Wget/1.15 (linux-gnu)"

person Lance    schedule 30.11.2016    source источник
comment
Какие сообщения об ошибках были в логах?   -  person Graham Dumpleton    schedule 30.11.2016
comment
Я добавил журналы к вопросу.   -  person Lance    schedule 30.11.2016
comment
Он говорит, что нет модуля с именем flask. что-то не так с моим требованием.txt или virtualenv?   -  person Lance    schedule 30.11.2016


Ответы (1)


Наконец-то разобрался. Мне нужно добавить flask_restful в setup.py

setup.py

from setuptools import setup

setup(name='YourAppName',
      version='1.0',
      description='OpenShift App',
      author='Lance',
      author_email='[email protected]',
      url='http://www.python.org/sigs/distutils-sig/',
      install_requires=['flask_restful'],
     )
person Lance    schedule 30.11.2016