반응형
저는 현재 실시간 통계를보고 싶은 Python 애플리케이션을 개발 중입니다. 사용하기 쉽고 이해하기 쉽도록 Flask
를 사용하고 싶었습니다.
문제는 내 Flask 서버가 Python 애플리케이션의 맨 처음에 시작되고 맨 끝에 중지되어야한다는 것입니다. 다음과 같이 표시되어야합니다.
def main():
""" My main application """
from watcher.flask import app
# watcher.flask define an app as in the Quickstart flask documentation.
# See: http://flask.pocoo.org/docs/0.10/quickstart/#quickstart
app.run() # Starting the flask application
do_my_stuff()
app.stop() # Undefined, for the idea
내 애플리케이션 컨텍스트 (통계 용)가 필요하기 때문에 multiprocessing.Process
를 사용할 수 없습니다. 그런 다음 threading.Thread
를 사용하려고했지만 Werkzeug가 좋아하지 않는 것 같습니다.
* Running on http://0.0.0.0:10079/
Exception in thread Flask Server:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File ".../develop-eggs/watcher.flask/src/watcher/flask/__init__.py", line 14, in _run
app.run(host=HOSTNAME, port=PORT, debug=DEBUG)
File ".../eggs/Flask-0.10.1-py2.7.egg/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File ".../eggs/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 609, in run_simple
run_with_reloader(inner, extra_files, reloader_interval)
File ".../eggs/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 524, in run_with_reloader
signal.signal(signal.SIGTERM, lambda *args: sys.exit(0))
ValueError: signal only works in main thread
메인 스레드에서 Flask를 실행하지 않고 어떻게 할 수 있습니까?
해결 방법
디버그 모드에서 Flask
를 실행하여 리 로더 를 활성화합니다 (코드가 변경 될 때 Flask 서버를 다시로드 함).
Flask는 별도의 스레드에서 잘 실행될 수 있지만 리 로더는 기본 스레드에서 실행될 것으로 예상합니다.
문제를 해결하려면 디버그 ( app.debug = False
)를 비활성화하거나 리 로더를 비활성화 ( app.use_reloader = False
)해야합니다.
또한 app.run
: app.run (debug = True, use_reloader = False)
에 인수로 전달할 수도 있습니다.
참조 페이지 https://stackoverflow.com/questions/31264826
반응형
'파이썬' 카테고리의 다른 글
파이썬 numpy 배열의 Python numpy 배열 (0) | 2020.11.21 |
---|---|
파이썬 django.core라는 모듈이 없습니다. (0) | 2020.11.21 |
파이썬 Pandas 데이터 프레임의 열에 대문자 적용 (0) | 2020.11.21 |
파이썬에서 행렬을 표현하는 방법 (0) | 2020.11.21 |
파이썬 Pandas Timedelta에서 총 시간을 얻습니까? (0) | 2020.11.21 |
댓글