您需要做的是在主模块中导入辅助模块,但需要在
socketio
例子:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from backend.database import db
app = Flask(__name__)
socketio = SocketIO(app, engineio_logger=True)
@socketio.on('connect')
def handle_connection():
from backend.electionAdministration import syncElections
syncElections()
import electionAdministration # <--- import your events here!
if __name__ == '__main__':
socketio.run(app)
此外,您需要考虑不会调用主Python脚本
socketservice
,因为Python总是命名顶级脚本
__main__
. 因此,如果您将上述脚本作为主脚本启动,则第二个文件应该导入
socketio公司
具体如下:
from __main__ import socketio
这是Python的一个小麻烦,当您希望有一个有时作为主脚本运行的脚本,但有时还希望由另一个脚本导入时,情况会更糟。为了使导入在这种情况下工作,我使用了以下技巧:
try:
from __main__ import socketio
except ImportError:
from socketservice import socketio