Я хочу создать интерактивную игру по кодированию python, в которой пользователи могут вводить команды в блокнот jupyter и видеть результат на GUI в реальном времени. Кажется, это нормально работает в обычной интерактивной оболочке python. Я выполняю это следующим образом:
- Я создаю файл, и вызываю его
example.py
со следующим кодом:
import tkinter as tk
def create_canvas():
root = tk.Tk()
root.resizable(False, False)
root.title("Karel")
frame = tk.Frame(root)
frame.pack()
canvas = tk.Canvas(frame, bg="white", width=500,
height=500)
canvas.pack()
return canvas
def create_oval(canvas):
return canvas.create_oval(150, 150, 155, 155, fill='#000')
def move(canvas, oval):
canvas.move(oval, 0, -50)
Затем в интерактивной оболочке python я делаю следующее:
>> import example
>> canvas = example.create_canvas()
>> oval = example.create_oval(canvas)
Однако, когда я пытаюсь заставить это работать в i python, я не вижу GUI (я предполагаю, что это потому, что я не выполняю функцию tkinters mainloop
). Но если я выполню функцию mainloop
, я больше не смогу иметь пользовательский ввод в интерактивной оболочке python.
Итак, мой вопрос: как мне заставить i python (чтобы я мог использовать записные книжки jupyter) вести себя как python и отображать GUI без блокировки ввода пользователя с консоли?
[РЕДАКТИРОВАТЬ]: Я понял, как это сделать с i python. Мне нужно ввести ipython --gui 'tk'
, но как мне передать параметры i python на сервер ноутбука jupyter, чтобы я мог делать все это в ноутбуке?