diff --git a/Mac/Extras.install.py b/Mac/Extras.install.py
index ce00af3..ab1af71 100644
--- a/Mac/Extras.install.py
+++ b/Mac/Extras.install.py
@@ -25,23 +25,23 @@
         assert cursrc.startswith(src)
         curdst = dst + cursrc[len(src):]
         if verbose:
-            print "mkdir", curdst
+            print("mkdir", curdst)
         if not debug:
             if not os.path.exists(curdst):
                 os.makedirs(curdst)
         for fn in files:
             if isclean(fn):
                 if verbose:
-                    print "copy", os.path.join(cursrc, fn), os.path.join(curdst, fn)
+                    print("copy", os.path.join(cursrc, fn), os.path.join(curdst, fn))
                 if not debug:
                     shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn))
             else:
                 if verbose:
-                    print "skipfile", os.path.join(cursrc, fn)
+                    print("skipfile", os.path.join(cursrc, fn))
         for i in range(len(dirs)-1, -1, -1):
             if not isclean(dirs[i]):
                 if verbose:
-                    print "skipdir", os.path.join(cursrc, dirs[i])
+                    print("skipdir", os.path.join(cursrc, dirs[i]))
                 del dirs[i]
 
 def main():
