py23 from __future__ import print_function
diff --git a/Lib/fontTools/afmLib.py b/Lib/fontTools/afmLib.py
index 5f015dc..2c088bd 100644
--- a/Lib/fontTools/afmLib.py
+++ b/Lib/fontTools/afmLib.py
@@ -4,8 +4,9 @@
 # It does not implement the full spec (Adobe Technote 5004, Adobe Font Metrics
 # File Format Specification). Still, it should read most "common" AFM files.
 
-import re
+from __future__ import print_function
 from fontTools.misc.py23 import *
+import re
 
 __version__ = "$Id: afmLib.py,v 1.6 2003-05-24 12:50:47 jvr Exp $"
 
diff --git a/Lib/fontTools/agl.py b/Lib/fontTools/agl.py
index 801a0b4..e0a7b3a 100644
--- a/Lib/fontTools/agl.py
+++ b/Lib/fontTools/agl.py
@@ -1,6 +1,9 @@
 # The table below is taken from
 # http://www.adobe.com/devnet/opentype/archives/aglfn.txt
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
+
 _aglText = """\
 # -----------------------------------------------------------
 # Copyright 2003, 2005-2008, 2010 Adobe Systems Incorporated.
diff --git a/Lib/fontTools/cffLib.py b/Lib/fontTools/cffLib.py
index bc4cbbd..a2a6b15 100644
--- a/Lib/fontTools/cffLib.py
+++ b/Lib/fontTools/cffLib.py
@@ -4,11 +4,12 @@
 # $Id: cffLib.py,v 1.34 2008-03-07 19:56:17 jvr Exp $
 #
 
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc import psCharStrings
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+import struct
 
 DEBUG = 0
 
diff --git a/Lib/fontTools/fondLib.py b/Lib/fontTools/fondLib.py
index f925ec6..6ba7ca7 100644
--- a/Lib/fontTools/fondLib.py
+++ b/Lib/fontTools/fondLib.py
@@ -1,10 +1,11 @@
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 try:
 	from Carbon import Res
 except ImportError:
 	import Res
-from fontTools.misc.py23 import *
+import struct
 
 
 error = "fondLib.error"
diff --git a/Lib/fontTools/misc/arrayTools.py b/Lib/fontTools/misc/arrayTools.py
index dad9e85..cab3066 100644
--- a/Lib/fontTools/misc/arrayTools.py
+++ b/Lib/fontTools/misc/arrayTools.py
@@ -4,8 +4,9 @@
 #
 
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import math
-from .py23 import *
 
 def calcBounds(array):
     """Return the bounding rectangle of a 2D points array as a tuple:
diff --git a/Lib/fontTools/misc/bezierTools.py b/Lib/fontTools/misc/bezierTools.py
index 3acd16f..a87d4ae 100644
--- a/Lib/fontTools/misc/bezierTools.py
+++ b/Lib/fontTools/misc/bezierTools.py
@@ -1,7 +1,8 @@
 """fontTools.misc.bezierTools.py -- tools for working with bezier path segments.
 """
 
-from .py23 import *
+from __future__ import print_function
+from fontTools.misc.py23 import *
 
 __all__ = [
     "calcQuadraticBounds",
diff --git a/Lib/fontTools/misc/eexec.py b/Lib/fontTools/misc/eexec.py
index 39b4120..dc36770 100644
--- a/Lib/fontTools/misc/eexec.py
+++ b/Lib/fontTools/misc/eexec.py
@@ -2,7 +2,8 @@
 charstring encryption algorithm as used by PostScript Type 1 fonts.
 """
 
-from .py23 import *
+from __future__ import print_function
+from fontTools.misc.py23 import *
 
 # Warning: Although a Python implementation is provided here, 
 # all four public functions get overridden by the *much* faster 
diff --git a/Lib/fontTools/misc/homeResFile.py b/Lib/fontTools/misc/homeResFile.py
index a91afd1..73996cd 100644
--- a/Lib/fontTools/misc/homeResFile.py
+++ b/Lib/fontTools/misc/homeResFile.py
@@ -1,10 +1,11 @@
 """Mac-only module to find the home file of a resource."""
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 import array
 import calldll
 import macfs, Res
-from .py23 import *
 
 
 def HomeResFile(res):
diff --git a/Lib/fontTools/misc/macCreatorType.py b/Lib/fontTools/misc/macCreatorType.py
index 6159cbb..5681461 100644
--- a/Lib/fontTools/misc/macCreatorType.py
+++ b/Lib/fontTools/misc/macCreatorType.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import sys
 try:
 	import MacOS
diff --git a/Lib/fontTools/misc/psCharStrings.py b/Lib/fontTools/misc/psCharStrings.py
index b25ce56..fa1250c 100644
--- a/Lib/fontTools/misc/psCharStrings.py
+++ b/Lib/fontTools/misc/psCharStrings.py
@@ -2,8 +2,9 @@
 CFF dictionary data and Type1/Type2 CharStrings.
 """
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import struct
-from .py23 import *
 
 
 DEBUG = 0
diff --git a/Lib/fontTools/misc/py23.py b/Lib/fontTools/misc/py23.py
index bfaa498..059faac 100644
--- a/Lib/fontTools/misc/py23.py
+++ b/Lib/fontTools/misc/py23.py
@@ -1,5 +1,7 @@
 """Python 2/3 compat layer."""
 
+from __future__ import print_function
+
 try:
 	basestring
 except NameError:
diff --git a/Lib/fontTools/misc/sstruct.py b/Lib/fontTools/misc/sstruct.py
index b11b431..3d976ee 100644
--- a/Lib/fontTools/misc/sstruct.py
+++ b/Lib/fontTools/misc/sstruct.py
@@ -46,17 +46,14 @@
 	it returns the size of the data in bytes.
 """
 
-# XXX I would like to support pascal strings, too, but I'm not
-# sure if that's wise. Would be nice if struct supported them
-# "properly", but that would certainly break calcsize()...
+from __future__ import print_function
+from fontTools.misc.py23 import *
+import struct
+import re
 
 __version__ = "1.2"
 __copyright__ = "Copyright 1998, Just van Rossum <just@letterror.com>"
 
-import struct
-import re
-from .py23 import *
-
 
 error = "sstruct.error"
 
diff --git a/Lib/fontTools/misc/textTools.py b/Lib/fontTools/misc/textTools.py
index 71203fc..8e41d18 100644
--- a/Lib/fontTools/misc/textTools.py
+++ b/Lib/fontTools/misc/textTools.py
@@ -1,8 +1,9 @@
 """fontTools.misc.textTools.py -- miscelaneous routines."""
 
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import string
-from .py23 import *
 
 
 def safeEval(data, eval=eval):
diff --git a/Lib/fontTools/misc/transform.py b/Lib/fontTools/misc/transform.py
index 69cb3fe..be706dd 100644
--- a/Lib/fontTools/misc/transform.py
+++ b/Lib/fontTools/misc/transform.py
@@ -45,7 +45,8 @@
 	>>>
 """
 
-from .py23 import *
+from __future__ import print_function
+from fontTools.misc.py23 import *
 
 __all__ = ["Transform", "Identity", "Offset", "Scale"]
 
diff --git a/Lib/fontTools/misc/xmlReader.py b/Lib/fontTools/misc/xmlReader.py
index 2c10fa5..c1a7667 100644
--- a/Lib/fontTools/misc/xmlReader.py
+++ b/Lib/fontTools/misc/xmlReader.py
@@ -1,8 +1,9 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools import ttLib
 from fontTools.misc.textTools import safeEval
 from fontTools.ttLib.tables.DefaultTable import DefaultTable
 import os
-from .py23 import *
 
 
 class TTXParseError(Exception): pass
diff --git a/Lib/fontTools/misc/xmlWriter.py b/Lib/fontTools/misc/xmlWriter.py
index 4f26228..e574983 100644
--- a/Lib/fontTools/misc/xmlWriter.py
+++ b/Lib/fontTools/misc/xmlWriter.py
@@ -1,8 +1,9 @@
 """xmlWriter.py -- Simple XML authoring class"""
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import string
 import struct
-from .py23 import *
 
 INDENT = "  "
 
diff --git a/Lib/fontTools/nfntLib.py b/Lib/fontTools/nfntLib.py
index b9dbe76..91a9832 100644
--- a/Lib/fontTools/nfntLib.py
+++ b/Lib/fontTools/nfntLib.py
@@ -1,6 +1,7 @@
-import struct
-from fontTools.misc import sstruct
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+import struct
 
 
 # FontRec header
diff --git a/Lib/fontTools/pens/basePen.py b/Lib/fontTools/pens/basePen.py
index 34b6e0b..90f4b83 100644
--- a/Lib/fontTools/pens/basePen.py
+++ b/Lib/fontTools/pens/basePen.py
@@ -36,6 +36,7 @@
 sequence of length 2 will do.
 """
 
+from __future__ import print_function
 from fontTools.misc.py23 import *
 
 __all__ = ["AbstractPen", "NullPen", "BasePen",
diff --git a/Lib/fontTools/pens/boundsPen.py b/Lib/fontTools/pens/boundsPen.py
index 81a1a90..6ea8913 100644
--- a/Lib/fontTools/pens/boundsPen.py
+++ b/Lib/fontTools/pens/boundsPen.py
@@ -1,7 +1,8 @@
-from fontTools.pens.basePen import BasePen
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc.arrayTools import updateBounds, pointInRect, unionRect
 from fontTools.misc.bezierTools import calcCubicBounds, calcQuadraticBounds
-from fontTools.misc.py23 import *
+from fontTools.pens.basePen import BasePen
 
 
 __all__ = ["BoundsPen", "ControlBoundsPen"]
diff --git a/Lib/fontTools/pens/cocoaPen.py b/Lib/fontTools/pens/cocoaPen.py
index 88d8e96..c4ea867 100644
--- a/Lib/fontTools/pens/cocoaPen.py
+++ b/Lib/fontTools/pens/cocoaPen.py
@@ -1,5 +1,6 @@
-from fontTools.pens.basePen import BasePen
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.pens.basePen import BasePen
 
 
 __all__ = ["CocoaPen"]
diff --git a/Lib/fontTools/pens/pointInsidePen.py b/Lib/fontTools/pens/pointInsidePen.py
index 6c9f36e..40a5b29 100644
--- a/Lib/fontTools/pens/pointInsidePen.py
+++ b/Lib/fontTools/pens/pointInsidePen.py
@@ -2,9 +2,10 @@
 for shapes.
 """
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.pens.basePen import BasePen
 from fontTools.misc.bezierTools import solveQuadratic, solveCubic
-from fontTools.misc.py23 import *
 
 
 __all__ = ["PointInsidePen"]
diff --git a/Lib/fontTools/pens/reportLabPen.py b/Lib/fontTools/pens/reportLabPen.py
index 694a168..cdb5151 100644
--- a/Lib/fontTools/pens/reportLabPen.py
+++ b/Lib/fontTools/pens/reportLabPen.py
@@ -1,5 +1,6 @@
-from fontTools.pens.basePen import BasePen
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.pens.basePen import BasePen
 
 
 class ReportLabPen(BasePen):
diff --git a/Lib/fontTools/pens/transformPen.py b/Lib/fontTools/pens/transformPen.py
index 4954e2c..23864c8 100644
--- a/Lib/fontTools/pens/transformPen.py
+++ b/Lib/fontTools/pens/transformPen.py
@@ -1,5 +1,6 @@
-from fontTools.pens.basePen import AbstractPen
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.pens.basePen import AbstractPen
 
 
 __all__ = ["TransformPen"]
diff --git a/Lib/fontTools/t1Lib.py b/Lib/fontTools/t1Lib.py
index 722978b..dbef868 100644
--- a/Lib/fontTools/t1Lib.py
+++ b/Lib/fontTools/t1Lib.py
@@ -20,11 +20,12 @@
 __version__ = "1.0b2"
 DEBUG = 0
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import eexec
 from fontTools.misc.macCreatorType import getMacCreatorAndType
-import re
 import os
-from fontTools.misc.py23 import *
+import re
 
 
 try:
diff --git a/Lib/fontTools/ttLib/__init__.py b/Lib/fontTools/ttLib/__init__.py
index 5dea0ed..b15ae5e 100644
--- a/Lib/fontTools/ttLib/__init__.py
+++ b/Lib/fontTools/ttLib/__init__.py
@@ -45,9 +45,10 @@
 # $Id: __init__.py,v 1.51 2009-02-22 08:55:00 pabs3 Exp $
 #
 
-import sys
-import os
+from __future__ import print_function
 from fontTools.misc.py23 import *
+import os
+import sys
 
 haveMacSupport = 0
 if sys.platform == "mac":
diff --git a/Lib/fontTools/ttLib/macUtils.py b/Lib/fontTools/ttLib/macUtils.py
index fd8ba84..ef93382 100644
--- a/Lib/fontTools/ttLib/macUtils.py
+++ b/Lib/fontTools/ttLib/macUtils.py
@@ -1,16 +1,16 @@
 """ttLib.macUtils.py -- Various Mac-specific stuff."""
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
 import sys
 import os
 if sys.platform not in ("mac", "darwin"):
 	raise ImportError("This module is Mac-only!")
-
 try:
 	from Carbon import Res
 except ImportError:
 	import Res
 
-from fontTools.misc.py23 import *
 
 
 def MyOpenResFile(path):
diff --git a/Lib/fontTools/ttLib/sfnt.py b/Lib/fontTools/ttLib/sfnt.py
index 7115572..77bb8f1 100644
--- a/Lib/fontTools/ttLib/sfnt.py
+++ b/Lib/fontTools/ttLib/sfnt.py
@@ -12,9 +12,10 @@
 a table's length chages you need to rewrite the whole file anyway.
 """
 
-import struct
-from fontTools.misc import sstruct
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+import struct
 
 
 class SFNTReader:
diff --git a/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py b/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py
index 34326bc..7368ba1 100644
--- a/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py
+++ b/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py
@@ -1,8 +1,9 @@
 # Since bitmap glyph metrics are shared between EBLC and EBDT
 # this class gets its own python file.
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
 
 
 bigGlyphMetricsFormat = """
diff --git a/Lib/fontTools/ttLib/tables/C_B_D_T_.py b/Lib/fontTools/ttLib/tables/C_B_D_T_.py
index 5d52d49..138e0ab 100644
--- a/Lib/fontTools/ttLib/tables/C_B_D_T_.py
+++ b/Lib/fontTools/ttLib/tables/C_B_D_T_.py
@@ -3,12 +3,13 @@
 # Google Author(s): Matt Fontaine
 
 
-from . import E_B_D_T_
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
+from . import E_B_D_T_
 from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat
 from .E_B_D_T_ import BitmapGlyph, BitmapPlusSmallMetricsMixin, BitmapPlusBigMetricsMixin
-from fontTools.misc.py23 import *
+import struct
 
 class table_C_B_D_T_(E_B_D_T_.table_E_B_D_T_):
 
diff --git a/Lib/fontTools/ttLib/tables/C_F_F_.py b/Lib/fontTools/ttLib/tables/C_F_F_.py
index eda00c3..f2e41ce 100644
--- a/Lib/fontTools/ttLib/tables/C_F_F_.py
+++ b/Lib/fontTools/ttLib/tables/C_F_F_.py
@@ -1,6 +1,7 @@
-from . import DefaultTable
-from fontTools import cffLib
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools import cffLib
+from . import DefaultTable
 
 
 class table_C_F_F_(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/C_O_L_R_.py b/Lib/fontTools/ttLib/tables/C_O_L_R_.py
index 7cdb683..37c4d2a 100644
--- a/Lib/fontTools/ttLib/tables/C_O_L_R_.py
+++ b/Lib/fontTools/ttLib/tables/C_O_L_R_.py
@@ -2,11 +2,12 @@
 #
 # Google Author(s): Behdad Esfahbod
 
-import operator
-from . import DefaultTable
-import struct
-from fontTools.misc.textTools import safeEval
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
+from . import DefaultTable
+import operator
+import struct
 
 
 class table_C_O_L_R_(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/C_P_A_L_.py b/Lib/fontTools/ttLib/tables/C_P_A_L_.py
index 43ce905..70c1b7e 100644
--- a/Lib/fontTools/ttLib/tables/C_P_A_L_.py
+++ b/Lib/fontTools/ttLib/tables/C_P_A_L_.py
@@ -2,10 +2,11 @@
 #
 # Google Author(s): Behdad Esfahbod
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
 from . import DefaultTable
 import struct
-from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
 
 
 class table_C_P_A_L_(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/D_S_I_G_.py b/Lib/fontTools/ttLib/tables/D_S_I_G_.py
index e25c8a3..82f0453 100644
--- a/Lib/fontTools/ttLib/tables/D_S_I_G_.py
+++ b/Lib/fontTools/ttLib/tables/D_S_I_G_.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc.textTools import safeEval
 from fontTools.misc import sstruct
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 DSIG_HeaderFormat = """
 	> # big endian
diff --git a/Lib/fontTools/ttLib/tables/DefaultTable.py b/Lib/fontTools/ttLib/tables/DefaultTable.py
index 45606e1..6a1a669 100644
--- a/Lib/fontTools/ttLib/tables/DefaultTable.py
+++ b/Lib/fontTools/ttLib/tables/DefaultTable.py
@@ -1,3 +1,4 @@
+from __future__ import print_function
 from fontTools.misc.py23 import *
 
 class DefaultTable:
diff --git a/Lib/fontTools/ttLib/tables/E_B_D_T_.py b/Lib/fontTools/ttLib/tables/E_B_D_T_.py
index d8ea500..04e0c92 100644
--- a/Lib/fontTools/ttLib/tables/E_B_D_T_.py
+++ b/Lib/fontTools/ttLib/tables/E_B_D_T_.py
@@ -1,11 +1,12 @@
-from . import DefaultTable
-import os
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
-import itertools
 from fontTools.misc.textTools import safeEval, readHex, hexStr, deHexStr
 from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat
-from fontTools.misc.py23 import *
+from . import DefaultTable
+import itertools
+import os
+import struct
 
 ebdtTableVersionFormat = """
 	> # big endian
diff --git a/Lib/fontTools/ttLib/tables/E_B_L_C_.py b/Lib/fontTools/ttLib/tables/E_B_L_C_.py
index 0b9a312..57b9929 100644
--- a/Lib/fontTools/ttLib/tables/E_B_L_C_.py
+++ b/Lib/fontTools/ttLib/tables/E_B_L_C_.py
@@ -1,11 +1,12 @@
-from . import DefaultTable
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
-import itertools
-from collections import deque
+from . import DefaultTable
 from fontTools.misc.textTools import safeEval
 from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat
-from fontTools.misc.py23 import *
+import struct
+import itertools
+from collections import deque
 
 eblcHeaderFormat = """
 	> # big endian
diff --git a/Lib/fontTools/ttLib/tables/G_M_A_P_.py b/Lib/fontTools/ttLib/tables/G_M_A_P_.py
index 844ae1c..15223e1 100644
--- a/Lib/fontTools/ttLib/tables/G_M_A_P_.py
+++ b/Lib/fontTools/ttLib/tables/G_M_A_P_.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 GMAPFormat = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/G_P_K_G_.py b/Lib/fontTools/ttLib/tables/G_P_K_G_.py
index 073d365..a73330a 100644
--- a/Lib/fontTools/ttLib/tables/G_P_K_G_.py
+++ b/Lib/fontTools/ttLib/tables/G_P_K_G_.py
@@ -1,9 +1,10 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+from fontTools.misc.textTools import safeEval, readHex
 from . import DefaultTable
 import sys
 import array
-from fontTools.misc import sstruct
-from fontTools.misc.textTools import safeEval, readHex
-from fontTools.misc.py23 import *
 
 GPKGFormat = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/L_T_S_H_.py b/Lib/fontTools/ttLib/tables/L_T_S_H_.py
index 6653c06..c35a8e7 100644
--- a/Lib/fontTools/ttLib/tables/L_T_S_H_.py
+++ b/Lib/fontTools/ttLib/tables/L_T_S_H_.py
@@ -1,8 +1,9 @@
-from . import DefaultTable
-import array
-import struct
-from fontTools.misc.textTools import safeEval
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
+from . import DefaultTable
+import struct
+import array
 
 # XXX I've lowered the strictness, to make sure Apple's own Chicago
 # XXX gets through. They're looking into it, I hope to raise the standards
diff --git a/Lib/fontTools/ttLib/tables/M_E_T_A_.py b/Lib/fontTools/ttLib/tables/M_E_T_A_.py
index 810dabc..faeff4a 100644
--- a/Lib/fontTools/ttLib/tables/M_E_T_A_.py
+++ b/Lib/fontTools/ttLib/tables/M_E_T_A_.py
@@ -1,8 +1,9 @@
-from . import DefaultTable
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
+import struct
 
 
 METAHeaderFormat = """
diff --git a/Lib/fontTools/ttLib/tables/O_S_2f_2.py b/Lib/fontTools/ttLib/tables/O_S_2f_2.py
index c005861..61ef1db 100644
--- a/Lib/fontTools/ttLib/tables/O_S_2f_2.py
+++ b/Lib/fontTools/ttLib/tables/O_S_2f_2.py
@@ -1,8 +1,9 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval, num2binary, binary2num
+from . import DefaultTable
 import warnings
-from fontTools.misc.py23 import *
 
 
 # panose classification
diff --git a/Lib/fontTools/ttLib/tables/S_I_N_G_.py b/Lib/fontTools/ttLib/tables/S_I_N_G_.py
index caafb05..e9ad938 100644
--- a/Lib/fontTools/ttLib/tables/S_I_N_G_.py
+++ b/Lib/fontTools/ttLib/tables/S_I_N_G_.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 SINGFormat = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/S_V_G_.py b/Lib/fontTools/ttLib/tables/S_V_G_.py
index fa2a34b..771ad02 100644
--- a/Lib/fontTools/ttLib/tables/S_V_G_.py
+++ b/Lib/fontTools/ttLib/tables/S_V_G_.py
@@ -42,15 +42,16 @@
 
 """
 
-from . import DefaultTable
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
+from . import DefaultTable
 try:
     import xml.etree.cElementTree as ET
 except ImportError:
     import xml.etree.ElementTree as ET
+import struct
 import re
-from fontTools.misc.py23 import *
 
 XML = ET.XML
 XMLElement = ET.Element
diff --git a/Lib/fontTools/ttLib/tables/T_S_I__0.py b/Lib/fontTools/ttLib/tables/T_S_I__0.py
index 95b4f93..daf2161 100644
--- a/Lib/fontTools/ttLib/tables/T_S_I__0.py
+++ b/Lib/fontTools/ttLib/tables/T_S_I__0.py
@@ -1,6 +1,7 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from . import DefaultTable
 import struct
-from fontTools.misc.py23 import *
 
 tsi0Format = '>HHl'
 
diff --git a/Lib/fontTools/ttLib/tables/T_S_I__1.py b/Lib/fontTools/ttLib/tables/T_S_I__1.py
index 2e12d07..3403362 100644
--- a/Lib/fontTools/ttLib/tables/T_S_I__1.py
+++ b/Lib/fontTools/ttLib/tables/T_S_I__1.py
@@ -1,5 +1,6 @@
-from . import DefaultTable
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from . import DefaultTable
 
 class table_T_S_I__1(DefaultTable.DefaultTable):
 	
diff --git a/Lib/fontTools/ttLib/tables/T_S_I__5.py b/Lib/fontTools/ttLib/tables/T_S_I__5.py
index ba68596..e4b1655 100644
--- a/Lib/fontTools/ttLib/tables/T_S_I__5.py
+++ b/Lib/fontTools/ttLib/tables/T_S_I__5.py
@@ -1,8 +1,9 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
 from . import DefaultTable
 import sys
 import array
-from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
 
 
 class table_T_S_I__5(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/V_O_R_G_.py b/Lib/fontTools/ttLib/tables/V_O_R_G_.py
index 1e019ec..9637209 100644
--- a/Lib/fontTools/ttLib/tables/V_O_R_G_.py
+++ b/Lib/fontTools/ttLib/tables/V_O_R_G_.py
@@ -1,8 +1,9 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
 from . import DefaultTable
 import operator
 import struct
-from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
 
 
 class table_V_O_R_G_(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/_c_m_a_p.py b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
index adee47c..37641e4 100644
--- a/Lib/fontTools/ttLib/tables/_c_m_a_p.py
+++ b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
@@ -1,10 +1,11 @@
-import sys
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval, readHex
 from . import DefaultTable
+import sys
 import struct
 import array
 import operator
-from fontTools.misc.textTools import safeEval, readHex
-from fontTools.misc.py23 import *
 
 
 class table__c_m_a_p(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/_c_v_t.py b/Lib/fontTools/ttLib/tables/_c_v_t.py
index 39ee5b5..91728cc 100644
--- a/Lib/fontTools/ttLib/tables/_c_v_t.py
+++ b/Lib/fontTools/ttLib/tables/_c_v_t.py
@@ -1,8 +1,9 @@
-import sys
-from . import DefaultTable
-import array
-from fontTools.misc.textTools import safeEval
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
+from . import DefaultTable
+import sys
+import array
 
 class table__c_v_t(DefaultTable.DefaultTable):
 	
diff --git a/Lib/fontTools/ttLib/tables/_f_p_g_m.py b/Lib/fontTools/ttLib/tables/_f_p_g_m.py
index c16d7ce..1c4bea1 100644
--- a/Lib/fontTools/ttLib/tables/_f_p_g_m.py
+++ b/Lib/fontTools/ttLib/tables/_f_p_g_m.py
@@ -1,6 +1,7 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from . import DefaultTable
 from . import ttProgram
-from fontTools.misc.py23 import *
 
 class table__f_p_g_m(DefaultTable.DefaultTable):
 	
diff --git a/Lib/fontTools/ttLib/tables/_g_a_s_p.py b/Lib/fontTools/ttLib/tables/_g_a_s_p.py
index a9acbea..bb7444c 100644
--- a/Lib/fontTools/ttLib/tables/_g_a_s_p.py
+++ b/Lib/fontTools/ttLib/tables/_g_a_s_p.py
@@ -1,7 +1,8 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
 from . import DefaultTable
 import struct
-from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
 
 
 GASP_SYMMETRIC_GRIDFIT = 0x0004
diff --git a/Lib/fontTools/ttLib/tables/_g_l_y_f.py b/Lib/fontTools/ttLib/tables/_g_l_y_f.py
index 14dfc92..d0b8c96 100644
--- a/Lib/fontTools/ttLib/tables/_g_l_y_f.py
+++ b/Lib/fontTools/ttLib/tables/_g_l_y_f.py
@@ -1,6 +1,19 @@
 """_g_l_y_f.py -- Converter classes for the 'glyf' table."""
 
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+from fontTools import ttLib
+from fontTools.misc.textTools import safeEval
+from fontTools.misc.arrayTools import calcBounds
+from . import DefaultTable
+from . import ttProgram
+import sys
+import struct
+import array
+import warnings
+
 #
 # The Apple and MS rasterizers behave differently for 
 # scaled composite components: one does scale first and then translate
@@ -14,18 +27,6 @@
 SCALE_COMPONENT_OFFSET_DEFAULT = 0   # 0 == MS, 1 == Apple
 
 
-import sys
-import struct
-from fontTools.misc import sstruct
-from . import DefaultTable
-from fontTools import ttLib
-from fontTools.misc.textTools import safeEval
-from fontTools.misc.arrayTools import calcBounds
-from . import ttProgram
-import array
-import warnings
-from fontTools.misc.py23 import *
-
 class table__g_l_y_f(DefaultTable.DefaultTable):
 	
 	def decompile(self, data, ttFont):
diff --git a/Lib/fontTools/ttLib/tables/_h_d_m_x.py b/Lib/fontTools/ttLib/tables/_h_d_m_x.py
index 8e50ae0..c1f6306 100644
--- a/Lib/fontTools/ttLib/tables/_h_d_m_x.py
+++ b/Lib/fontTools/ttLib/tables/_h_d_m_x.py
@@ -1,6 +1,7 @@
-from . import DefaultTable
-from fontTools.misc import sstruct
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+from . import DefaultTable
 
 hdmxHeaderFormat = """
 	>   # big endian!
diff --git a/Lib/fontTools/ttLib/tables/_h_e_a_d.py b/Lib/fontTools/ttLib/tables/_h_e_a_d.py
index 90a41ab..ec017f8 100644
--- a/Lib/fontTools/ttLib/tables/_h_e_a_d.py
+++ b/Lib/fontTools/ttLib/tables/_h_e_a_d.py
@@ -1,8 +1,9 @@
-from . import DefaultTable
-from fontTools.misc import sstruct
-import time
-from fontTools.misc.textTools import safeEval, num2binary, binary2num
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc import sstruct
+from fontTools.misc.textTools import safeEval, num2binary, binary2num
+from . import DefaultTable
+import time
 
 
 headFormat = """
diff --git a/Lib/fontTools/ttLib/tables/_h_h_e_a.py b/Lib/fontTools/ttLib/tables/_h_h_e_a.py
index 1240f7a..bdd783a 100644
--- a/Lib/fontTools/ttLib/tables/_h_h_e_a.py
+++ b/Lib/fontTools/ttLib/tables/_h_h_e_a.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 
 hheaFormat = """
diff --git a/Lib/fontTools/ttLib/tables/_h_m_t_x.py b/Lib/fontTools/ttLib/tables/_h_m_t_x.py
index d16e3bc..af3da77 100644
--- a/Lib/fontTools/ttLib/tables/_h_m_t_x.py
+++ b/Lib/fontTools/ttLib/tables/_h_m_t_x.py
@@ -1,9 +1,10 @@
-import sys
-from . import DefaultTable
-import array
-from fontTools.misc.textTools import safeEval
-import warnings
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from fontTools.misc.textTools import safeEval
+from . import DefaultTable
+import sys
+import array
+import warnings
 
 
 class table__h_m_t_x(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/_k_e_r_n.py b/Lib/fontTools/ttLib/tables/_k_e_r_n.py
index 81bd67a..d2eee9f 100644
--- a/Lib/fontTools/ttLib/tables/_k_e_r_n.py
+++ b/Lib/fontTools/ttLib/tables/_k_e_r_n.py
@@ -1,9 +1,10 @@
-from . import DefaultTable
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.ttLib import sfnt
 from fontTools.misc.textTools import safeEval, readHex
+from . import DefaultTable
+import struct
 import warnings
-from fontTools.misc.py23 import *
 
 
 class table__k_e_r_n(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/_l_o_c_a.py b/Lib/fontTools/ttLib/tables/_l_o_c_a.py
index 9918332..2e8e41d 100644
--- a/Lib/fontTools/ttLib/tables/_l_o_c_a.py
+++ b/Lib/fontTools/ttLib/tables/_l_o_c_a.py
@@ -1,8 +1,9 @@
-import sys
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from . import DefaultTable
+import sys
 import array
 import warnings
-from fontTools.misc.py23 import *
 
 class table__l_o_c_a(DefaultTable.DefaultTable):
 	
diff --git a/Lib/fontTools/ttLib/tables/_m_a_x_p.py b/Lib/fontTools/ttLib/tables/_m_a_x_p.py
index d5eed8c..7609a42 100644
--- a/Lib/fontTools/ttLib/tables/_m_a_x_p.py
+++ b/Lib/fontTools/ttLib/tables/_m_a_x_p.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 maxpFormat_0_5 = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/_n_a_m_e.py b/Lib/fontTools/ttLib/tables/_n_a_m_e.py
index af09acb..511bd52 100644
--- a/Lib/fontTools/ttLib/tables/_n_a_m_e.py
+++ b/Lib/fontTools/ttLib/tables/_n_a_m_e.py
@@ -1,8 +1,9 @@
-from . import DefaultTable
-import struct
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
+import struct
 
 nameRecordFormat = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/_p_o_s_t.py b/Lib/fontTools/ttLib/tables/_p_o_s_t.py
index d6a77c5..a50b640 100644
--- a/Lib/fontTools/ttLib/tables/_p_o_s_t.py
+++ b/Lib/fontTools/ttLib/tables/_p_o_s_t.py
@@ -1,12 +1,13 @@
-from . import DefaultTable
-import sys
-import struct
-import array
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools import ttLib
 from fontTools.ttLib.standardGlyphOrder import standardGlyphOrder
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval, readHex
-from fontTools.misc.py23 import *
+from . import DefaultTable
+import sys
+import struct
+import array
 
 
 postFormat = """
diff --git a/Lib/fontTools/ttLib/tables/_v_h_e_a.py b/Lib/fontTools/ttLib/tables/_v_h_e_a.py
index dcb1fb7..be082e4 100644
--- a/Lib/fontTools/ttLib/tables/_v_h_e_a.py
+++ b/Lib/fontTools/ttLib/tables/_v_h_e_a.py
@@ -1,7 +1,8 @@
-from . import DefaultTable
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 from fontTools.misc.textTools import safeEval
-from fontTools.misc.py23 import *
+from . import DefaultTable
 
 vheaFormat = """
 		>	# big endian
diff --git a/Lib/fontTools/ttLib/tables/asciiTable.py b/Lib/fontTools/ttLib/tables/asciiTable.py
index f8a30d0..098fea9 100644
--- a/Lib/fontTools/ttLib/tables/asciiTable.py
+++ b/Lib/fontTools/ttLib/tables/asciiTable.py
@@ -1,5 +1,6 @@
-from . import DefaultTable
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from . import DefaultTable
 
 
 class asciiTable(DefaultTable.DefaultTable):
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index 4866807..7b0da81 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -1,6 +1,7 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from .DefaultTable import DefaultTable
 import struct
-from fontTools.misc.py23 import *
 
 class OverflowErrorRecord:
 	def __init__(self, overflowTuple):
diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py
index 727fbed..6e98466 100644
--- a/Lib/fontTools/ttLib/tables/otConverters.py
+++ b/Lib/fontTools/ttLib/tables/otConverters.py
@@ -1,6 +1,7 @@
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.misc.textTools import safeEval
 from .otBase import ValueRecordFactory
-from fontTools.misc.py23 import *
 
 
 def buildConverters(tableSpec, tableNamespace):
diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py
index 20a4e5d..8749482 100644
--- a/Lib/fontTools/ttLib/tables/otTables.py
+++ b/Lib/fontTools/ttLib/tables/otTables.py
@@ -4,10 +4,11 @@
 Most are constructed upon import from data in otData.py, all are populated with
 converter objects from otConverters.py.
 """
-import operator
-from .otBase import BaseTable, FormatSwitchingBaseTable
-import warnings
+from __future__ import print_function
 from fontTools.misc.py23 import *
+from .otBase import BaseTable, FormatSwitchingBaseTable
+import operator
+import warnings
 
 
 class LookupOrder(BaseTable):
diff --git a/Lib/fontTools/ttLib/tables/ttProgram.py b/Lib/fontTools/ttLib/tables/ttProgram.py
index 6186189..2c3c923 100644
--- a/Lib/fontTools/ttLib/tables/ttProgram.py
+++ b/Lib/fontTools/ttLib/tables/ttProgram.py
@@ -1,9 +1,10 @@
 """ttLib.tables.ttProgram.py -- Assembler/disassembler for TrueType bytecode programs."""
 
+from __future__ import print_function
+from fontTools.misc.py23 import *
+from fontTools.misc.textTools import num2binary, binary2num, readHex
 import array
 import re
-from fontTools.misc.textTools import num2binary, binary2num, readHex
-from fontTools.misc.py23 import *
 
 # first, the list of instructions that eat bytes or words from the instruction stream
 
diff --git a/Lib/fontTools/ttx.py b/Lib/fontTools/ttx.py
index 092e2ab..7e5e41b 100644
--- a/Lib/fontTools/ttx.py
+++ b/Lib/fontTools/ttx.py
@@ -66,16 +66,17 @@
 """
 
 
-import sys
-import os
-import getopt
-import re
+from __future__ import print_function
+from fontTools.misc.py23 import *
 from fontTools.ttLib import TTFont, TTLibError
 from fontTools.ttLib.tables.otBase import OTLOffsetOverflowError
 from fontTools.ttLib.tables.otTables import fixLookupOverFlows, fixSubTableOverFlows
 from fontTools.misc.macCreatorType import getMacCreatorAndType
 from fontTools import version
-from fontTools.misc.py23 import *
+import os
+import sys
+import getopt
+import re
 
 def usage():
 	print(__doc__ % version)