title: Is there any way to use Tkinter with Google Colaboratory?
body: <p>I have a code where I'm trying out different Tkinter widgets, but Colab sends back an error saying that there's no display name or variable. The exact error message looks something like what follows:</p>
  
  <pre><code>TclError                                  Traceback (most recent call last)
  &lt;ipython-input-5-7b43f8be599d&gt; in &lt;module&gt;()
  ----&gt; 1 form = tk.Tk()
     /usr/lib/python3.6/tkinter/__init__.py in __init__(self, screenName, baseName, className, useTk, sync, use)
     2021                 baseName = baseName + ext
     2022         interactive = 0
  -&gt; 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
  </code></pre>
  
  <p>Is there any way to work around this? The code goes something like this:</p>
  
  <pre><code>import tkinter as tk
  from tkinter import ttk
  from tkinter import messagebox
  from tkinter import filedialog
  def fOpen(): 
      print(filedialog.askopenfilename(initialdir = "/",title = "Open file",filetypes = (("Python files","*.py;*.pyw"),("All files","*.*"))))
  def ExitF(): 
      form.destroy()
  def fSave(): 
      print(filedialog.asksaveasfilename(initialdir = "/",title = "Save as",filetypes = (("Python files","*.py;*.pyw"),("All files","*.*"))))
  form = tk.Tk()
  form.title("Colab Form")
  menubar = tk.Menu(form)
  filemenu = tk.Menu(menubar,tearoff=0)
  filemenu.add_command(label="Open", command = fOpen)
  filemenu.add_command(label="Save", command = fSave)
  filemenu.add_command(label="Exit", command = ExitF)
  menubar.add_cascade(label="File", menu=filemenu)
  form.config(menu=menubar)
  #Listbox with attached scrollbar
  scrollbar=tk.Scrollbar(form)
  mylist = tk.Listbox(form, yscrollcommand = scrollbar.set )
  for line in range(100):
     mylist.insert("end", "This is line number " + str(line))
  mylist.grid(row=7,column=1,rowspan=3, sticky='e', padx=25, pady=25)
  scrollbar.config( command = mylist.yview )
  scrollbar.grid(row=7, column=2, rowspan=3, sticky='nsw', padx=25, pady=25)
  form.mainloop()
  </code></pre>