2016-12-30 8 views
0

私はPython Flaskを初めて使用しています。 app.run()なしでFlask_app.pyを実行することはできますが、それを置くとエラーが表示されます。私は現在、以下のようpythonanywhere.comapp.runでのPythonフラスコのエラー

from flask import Flask,jsonify,abort,make_response 
import MySQLdb 
import MySQLdb.cursors 

app = Flask(__name__) 
db = MySQLdb.connect(host='venus.mysql.pythonanywhere-services.com',user='venus',passwd='pw',db='venuspp$default',cursorclass=MySQLdb.cursors.DictCursor) 

@app.route('/') 
def hello_world(): 
    return 'Hello from bybye!' 

@app.route('/KL', methods=['GET']) 
def KL(): 
    curs = db.cursor() 
    try: 
     curs.execute("SELECT * FROM KL") 
     a = curs.fetchall() 
    except Exception: 
     return 'Error: unable to fetch items' 
    #return "hihi" 
    return jsonify({'venus': a}) 

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

エラーで実行します。

* Running on http://127.0.0.1:5000/ 
Traceback (most recent call last): 
    File "/home/vinus/mysite/flask_app.py", line 49, in <module> 
    app.run() 
    File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 772, in run 
    run_simple(host, port, self, **options) 
    File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 710, in run_simple 
    inner() 
    File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 692, in inner 
    passthrough_errors, ssl_context).serve_forever() 
    File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 486, in make_server 
    passthrough_errors, ssl_context) 
    File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 410, in __init__ 
    HTTPServer.__init__(self, (host, int(port)), handler) 
    File "/usr/lib/python3.4/socketserver.py", line 430, in __init__ 
    self.server_bind() 
    File "/usr/lib/python3.4/http/server.py", line 133, in server_bind 
    socketserver.TCPServer.server_bind(self) 
    File "/usr/lib/python3.4/socketserver.py", line 444, in server_bind 
    self.socket.bind(self.server_address) 
OSError: [Errno 98] Address already in use 
  1. があればapp.runのない私のスクリプトが正しいと堅牢ですか()?毎日データベースを更新します。私はそれが壊れないようにしたい。
  2. エラーを修正するにはどうすればよいですか?
+2

別のプロセス(実行している別のスクリプトかもしれません)は、あなたのアプリケーションを実行しようとする正確なポートを使用します – Arman

+0

app.run()なしでスクリプトに問題がありますか? – vindex

+0

'app.run(port = 8080)'などを使用してください。多分8000が使用されています。 –

答えて

3
WSGI構成を通じて

Pythonanywhere実行フラスコアプリなので、あなたの/var/www/username_pythonanywhere_com_wsgi.pyあなたは以下のようなものが表示されます確認した場合、それは、あなたのために動作しますので、あなたのアプリケーションが動作する

import sys 

# add your project directory to the sys.path 
project_home = u'/home/username/project_name' 
if project_home not in sys.path: 
    sys.path = [project_home] + sys.path 

# import flask app but need to call it "application" for WSGI to work 
from yourappmodule import app as application 

#app.py 
from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello!' 

を完全になしapp.run()

関連する問題