#flask #flask-socketio
Вопрос:
У меня возникли проблемы с импортом сокета в один из моих файлов
This is my folder structure (myapp is a folder)
myapp
-> __init__.py
-> app.py
run.py
#run.py
from myapp import socketio, app
socketio.run(app, host='myip', port='2002', debug=True)
#__init__.py
from flask import Flask
from flask_socketio import SocketIO
import eventlet
import json
from myapp.app import bp
app = Flask(__name__)
app.register_blueprint(bp)
socketio = SocketIO(app, async_mode='eventlet')
#app.py
from flask import Blueprint
from myapp import socketio
bp = Blueprint('bp', __name__)
@bp.route('/')
@bp.route('/home')
def home():
return '<html><body><h1>Hello, World!</h1></body></html>
Ошибка, которую я в конечном итоге получаю, заключается в следующем
ImportError: cannot import name 'socketio' from 'myapp' (myfilepathmyapp__init__.py)
Я надеялся поместить содержимое сокета в другой файл, и я не уверен, почему это не позволяет мне импортировать его. Я думал, что у него не будет никаких проблем, так как у него не было никаких проблем с импортом для run.py файл.
Комментарии:
1. Ваш
__init__.py
файл импортируется app.py до того, как он создастsocketio
объект. Такимapp.py
образом , вы никогда не сможете импортироватьsocketio
, это циклическая зависимость.