问题描述
我正在使用flask-SocketIO创建一个可在文件到达特定目录时更新GUI的应用程序。当在开发服务器上运行flask运行时(使用“ flask run”时),一切似乎都正常运行,但是当使用“ python main.py”时,则出现了问题。这是罪魁祸首的简化版本:
main.py
from flask import Flask
from flask_socketio import SocketIO
import watch
app = Flask(__name__)
socketio = SocketIO(app)
# the script that looks for new files
watch.watch()
@socketio.on('get stuff')
def receiveResponse():
import time
global new_item_arrived
# pause here until a new item has arrived
while (new_item_arrived == False):
time.sleep(1)
new_item_arrived = False
# Do Stuff...
if __name__ == '__main__':
socketio.run(app)
预期的行为是当新文件到达某个目录时,函数“做东西”。 我有一个正在运行的python看门狗脚本,正在寻找这些新文件。到达后,会将“ new_item_arrived”的值更改为true,这意味着receiveResponse可以转到函数的下一行。当没有新商品到达时,循环将继续等待其他商品到达。
因此,当我执行“ flask run”时,这很好用,但是当我执行“ python main.py”,并且有一个新文件到达时,它只会陷入无限循环。之后,似乎甚至冻结了该端口或返回此错误的内容:
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
再次能够使用我的应用程序的唯一方法是重新启动整个计算机。
另外,我应该指出,我的应用程序确实还有其他使用SocketIO的功能,但为简单起见,我并未将其包括在内,并且它们都可以正常工作。不确定是否相关,但是我将eventlet用作服务器。
我可能正在做一些别人看不到的事情,但是有人可以帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)