Ib_insync RuntimeError: в потоке нет текущего цикла событийPython

Программы на Python
Anonymous
Ib_insync RuntimeError: в потоке нет текущего цикла событий

Сообщение Anonymous »

Я хочу использовать маринованный объект ib_insync.Stock в приложении Dash, но получаю сообщение об отсутствии циклов событий.

Как воспроизвести: Создайте два файла. 1. один для создания версии ib_insync.Stock. 2. Небольшое приложение Dash, которое загружает этот файл рассола.
#do_a_save.py
import pickle
from ib_insync import Stock, IB

stock = Stock(symbol="AAPL", exchange='SMART', currency='USD')

with open('stock.pkl', 'wb') as f:
pickle.dump(stock, f, pickle.HIGHEST_PROTOCOL)

#app.py
from dash import Dash, html, dcc, callback, Output, Input
import pickle

app = Dash()

app.layout = [
html.H1(children='Title of Dash App', style={'textAlign':'center'}),
html.Div(children='', id = 'output-container', style={'textAlign':'center'}),
html.Button(children='Load!', id = 'button')
]

@callback(
Output('output-container', 'children'),
Input('button', 'n_clicks')
)
def load_stock(n_clicks):
with open('stock.pkl', 'rb') as f:
stock = pickle.load(f)
return str(stock)

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

Эта проблема может включать в себя размещение:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)

где-то, как предложено здесь. Еще одна похожая проблема здесь.
К вашему сведению, ошибка возникает из этой строки в модуле eventkit:
File ".../IBenv/lib/python3.11/site-packages/eventkit/util.py", line 21, in get_event_loop
return asyncio.get_event_loop_policy().get_event_loop()


Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-thread

Вернуться в «Python»