TclError: нет отображаемого имени

#python #tkinter

#python #tkinter

Вопрос:

Я написал фрагмент для Trigno Fun, но я не могу понять, почему IDLE сообщает мне, что в моем коде все еще есть ошибка.

Вот мой код:

 from tkinter import *
import math
 
## constant for slope
## and fixed 3 points
 
ee = 0.04
x1=y1=y2=0
x2=10
x3=5
y3=5*math.sqrt(3)
 
PrevX = 0
PrevY = 150
 
## Scales the Line
 
def scale(x,y,xx,yy):
    x=x*20 100
    y=y*20 100
    xx=xx*20 100
    yy=yy*20 100
    return(x,y,xx,yy)
 
root = Tk()
root.title("Trigno fun 1")
canvas = Canvas(width=400,height=300,bg='white')
canvas.create_line(scale(x1,y1,x2,y2),fill='red')
canvas.create_line(scale(x2,y2,x3,y3),fill='red')
canvas.create_line(scale(x3,y3,x1,y1),fill='red')
 
## positions shifted/swapped till 100th point
## using 3 fixed points
 
for i in range(0,100):
    x4 = ee*x2   (1-ee)*x3
    y4 = ee*y2   (1-ee)*y3
    canvas.create_line(scale(x4,y4,x1,y1),fill='red')
    x3=x2
    y3=y2
    x2=x1
    y2=y1
    x1=x4
    y1=y4
     
canvas.pack()
mainloop()
  

И это вывод:

 ---------------------------------------------------------------------------
TclError                                  Traceback (most recent call last)
<ipython-input-17-533e2c3f76bc> in <module>()
----> 1 roots = Tk()
      2 root.title("Trigno Fun")
      3 canvas = Canvas(width=400, height=300, bg='white')
      4 canvas.create_line(scale(x1,y1,x2,y2), fill='red')
      5 canvas.create_line(scale(x2,y2,x3,y3), fill='red')

/usr/lib/python3.6/tkinter/__init__.py in __init__(self, screenName, baseName, className, useTk, sync, use)
   2021                 baseName = baseName   ext
   2022         interactive = 0
-> 2023         self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
   2024         if useTk:
   2025             self._loadtk()

TclError: no display name and no $DISPLAY environment variable
  

Насколько я понимаю, мой код в порядке, но он показывает ошибку, не знаю почему?
Может кто-нибудь подсказать мне, в чем проблема в моем коде?

Комментарии:

1. Возможно, потому, что ваша среда IDE не поддерживает использование окна, скопируйте код в какую-либо другую среду IDE, возможно, python ПРОСТАИВАЕТ

2. Я просто попытался скопировать ваш код, и он отлично работает в PyCharm

3. Вы используете ipython / Jupyter, а не Python IDLE. Как указано в ошибке, в вашей среде либо нет графического рабочего стола , либо не установлена переменная среды отображения .

4. В colab и когда я выполняю скрипт с помощью pyinstaller, он показывает TclError. В Jupyter Notebook и других IDE скрипт работает правильно.