--- a/plakativ.py
+++ b/plakativ.py
@@ -15,13 +15,25 @@
 from collections import OrderedDict
 import math
 import fitz
-import tkinter
-import tkinter.filedialog
 import sys
 import argparse
 import os.path
 import platform
 
+have_tkinter = True
+try:
+    import tkinter
+    import tkinter.filedialog
+except ImportError:
+    have_tkinter = False
+    class dummy:
+        def __init__(self, *args, **kwargs):
+            raise Exception("this functionality needs tkinter")
+    tkinter = type('', (), {})()
+    tkinter.Frame = dummy
+    tkinter.Menubutton = dummy
+    tkinter.LabelFrame = dummy
+
 VERSION = "0.2"
 
 PAGE_SIZES = OrderedDict(
@@ -1630,6 +1642,8 @@ def compute_layout(
 
 
 def gui():
+    if not have_tkinter:
+        raise Exception("the GUI requires tkinter")
     root = tkinter.Tk()
     app = Application(master=root)
     app.mainloop()
