Question: How do you create a **hyperlink** using a `Label` in Tkinter?

A quick search did not reveal how to do this. Instead there were only solutions to create a hyperlink in a `Text` widget.

Answer: 
Bind the label to `"<Button-1>"` event. When it is raised the `callback` is executed resulting in a new page opening in your default browser. 

```
from tkinter import *
import webbrowser

def callback(url):
    webbrowser.open_new(url)

root = Tk()
link1 = Label(root, text="Google Hyperlink", fg="blue", cursor="hand2")
link1.pack()
link1.bind("<Button-1>", lambda e: callback("http://www.google.com"))

link2 = Label(root, text="Ecosia Hyperlink", fg="blue", cursor="hand2")
link2.pack()
link2.bind("<Button-1>", lambda e: callback("http://www.ecosia.org"))

root.mainloop()

```

You can also open files by changing the callback to: 

```
webbrowser.open_new(r"file://c:\test\test.csv")

```
There is a module on [PyPi called tkhtmlview](https://pypi.org/project/tkhtmlview/) (`pip install tkhtmlview`) that supports HTML in tkinter. It only supports some tags, but on the page, it says that it has full support fro tags (anchor tags for hyperlinks), and supports the href attribute. It requires Python 3.4 or later with tcl/tk (tkinter) support and the Pillow 5.3.0 module. I haven't tried the tag yet, but I tried the module in general and it works.

As an example:

```
import tkinter as tk
from tkhtmlview import HTMLLabel

root = tk.Tk()
html_label=HTMLLabel(root, html='<a href="http://www.google.com"> Google Hyperlink </a>')
html_label.pack()
root.mainloop()

```