2015-07-29 3 views
0

Итак, я работаю над этим проектом, в котором я использую Flask, и я все еще новичок в использовании Flask. Тем не менее, всякий раз, когда я пытаюсь запустить сценарий, который я использую для этого проекта, я получаю вызов трассировки, жалующийся на app.run().Продолжайте получать трассировку вызова для app.run() в Flask

Вот код из моего сценария:

import os 
from flask import Flask, render_template, request, flash, redirect, url_for 
from flask.ext.assets import Environment, Bundle 
from flask_wtf import Form 
from wtforms import TextField, TextAreaField, SubmitField 
from wtforms.validators import InputRequired 

CSRF_ENABLED = True 
app = Flask(__name__) 
app.secret_key = 'development key' 
assets = Environment(app) 
assets.url = app.static_url_path 
scss = Bundle('assets/scss/app.scss', filters='scss', output='css/app.css') 
assets.register('app_scss', scss) 

@app.route('/') 
def server_1(): 
    return render_template('server_1.html') 


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

Вот отслеживающий, что сценарий держит вывода (I разнесены отдельных tracebacks, чтобы сделать их более удобными для чтения):

$python app.py 
* Running on http://127.0.0.1:5000/ 
Traceback (most recent call last): 
File "app.py", line 22, in <module> 
    app.run() 

File "/Library/Python/2.7/site-packages/flask/app.py", line 772, in run 
    run_simple(host, port, self, **options) 

File "/Library/Python/2.7/site-packages/Werkzeug-0.9.6- py2.7.egg/werkzeug/serving.py", line 710, in run_simple 
inner() 

File "/Library/Python/2.7/site-packages/Werkzeug-0.9.6-py2.7.egg/werkzeug/serving.py", line 692, in inner 
passthrough_errors, ssl_context).serve_forever() 

File "/Library/Python/2.7/site-packages/Werkzeug-0.9.6-py2.7.egg/werkzeug/serving.py", line 486, in make_server 
passthrough_errors, ssl_context) 

File "/Library/Python/2.7/site-packages/Werkzeug-0.9.6-py2.7.egg/werkzeug/serving.py", line 410, in __init__ 
HTTPServer.__init__(self, (host, int(port)), handler) 

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 419, in __init__ 
self.server_bind() 

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind 
SocketServer.TCPServer.server_bind(self) 

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 430, in server_bind 
self.socket.bind(self.server_address) 

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth 
return getattr(self._sock,name)(*args) 

socket.error: [Errno 48] Address already in use 

Я я не слишком уверен, что я сделал неправильно, поэтому любая помощь, которую можно дать, очень ценится.

+0

Что-то еще уже запущено на порту 5000. У вас еще есть приложение Flask? – dirn

+0

Нет, у меня больше ничего не было. – user3631048

ответ

2

Конечная ошибка:

socket.error: [Errno 48] Address already in use 

Указывает, что у вас уже есть что-то еще работает на 127.0.0.1 порт 5000.

Чтобы узнать, какой процесс использует этот адрес, вы можете выполнить следующую команду (на OS X)

lsof -i tcp:5000 

в качестве альтернативы, если вы хотите использовать другой порт, скажем, 5001, настроить свой код, например:

if __name__ == '__main__': 
     app.run(port=5001) 
+0

Это сработало спасибо. Похоже, что python уже использует порт 5000 для чего-то, но я не уверен, что использует этот порт. – user3631048

+0

в качестве альтернативы, do 'app.run (port = 8080)' – corvid