Вы не должны использовать exec
. Если вы хотите связать вычисленное имя с виджетом в al oop, используйте словарь:
labels = {}
varnum = 0
for row in crsr.fetchall():
name=f"label#{varnum}"
labels[name] = tk.Label(frame, text=str(row[0]))
labels[name].grid(row=row_num, column=column_num
varnum += 1
row_num+=1
column_num+=1
Если вам неважно, какое это имя, вы можете сохранить виджеты в списке вместо словаря, а затем ссылаться на них, используя целочисленный индекс (например: labels[0]
, labels[1]
, et c).