Flask Socket-IO запускается без импорта и вызывает много проблем, таких как не может принимать хост = '0.0.0.0' - PullRequest
0 голосов
/ 23 декабря 2018

каждый раз, когда я запускаю код, я вижу Serving Flask-SocketIO app "app.py"

у меня даже нет SpcketIO в моей системе

import os, passlib ,requests ,time ,json
from flask import Flask, session , render_template , request,redirect,url_for ,jsonify 
from flask_session import Session
import pandas as pd
from flask_uploads import UploadSet, configure_uploads, IMAGES, patch_request_class
from werkzeug import secure_filename
from datetime import date , datetime
from flask_sqlalchemy import SQLAlchemy
from passlib.hash import sha256_crypt
from flask_login import LoginManager , UserMixin , current_user ,login_user ,login_required ,logout_user

app = Flask(__name__)

к концу моего кода яэто

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

я запускаю систему по cmd: flask run

Раньше я игнорировал эту ошибку, так как все остальное работало, но когда я пытался добавить app.run(debug=True,host='0.0.0.0')

также debug=True, похоже, больше ничего не делал, мне пришлось включить его через CMD set Flask_Debug=1

я получил сообщение об ошибке ValueError: signal only works in main thread

и приложениевообще не запускался

точная ошибка

 * Serving Flask-SocketIO app "app.py"
 * Forcing debug mode on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 885-769-473
Exception in thread Thread-1:
Traceback (most recent call last):
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\threading.py
", line 917, in _bootstrap_inner
    self.run()
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\threading.py
", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\flask_socketio\cli.py", line 59, in run_server
    return run_command()
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\flask\cli.py", line 771, in run_command
    threaded=with_threads, ssl_context=cert)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\werkzeug\serving.py", line 812, in run_simple
    reloader_type)
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\site-package
s\werkzeug\_reloader.py", line 267, in run_with_reloader
    signal.signal(signal.SIGTERM, lambda *args: sys.exit(0))
  File "c:\users\mena\appdata\local\programs\python\python37-32\lib\signal.py",
line 47, in signal
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread

, чтобы вернуться к работе, мне пришлось отключить отладку в cmd set Flask_Debug=0

что не так с моей системой?

1 Ответ

0 голосов
/ 23 декабря 2018

проверьте, запущен ли другой поток или нет.И попробуйте запустить ваше приложение с помощью команды python app.py из терминала, а не во флаконе.может быть команда Flask Run, вызывающая другие службы, которые не нужны вашему приложению.

Также я предполагаю, что вы работаете в системе Linux.В терминале (Windows cmd) и в каталоге вашего проекта, где находится ваш app.py, просто введите python (python / python3 зависит от используемой версии) app.py и нажмите enter.

попробуйте это в командной строке

python app.py
or
python3 app.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...