Index: src/sas/sascalc/calculator/sas_gen.py
===================================================================
--- src/sas/sascalc/calculator/sas_gen.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/calculator/sas_gen.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -558,5 +558,5 @@
                             vol_pix = np.append(vol_pix, vol)
                         except:
-                            print "Error: set the sld of %s to zero"% atom_name
+                            print("Error: set the sld of %s to zero"% atom_name)
                             sld_n = np.append(sld_n, 0.0)
                         sld_mx = np.append(sld_mx, 0)
@@ -609,5 +609,5 @@
         Write
         """
-        print "Not implemented... "
+        print("Not implemented... ")
 
 class SLDReader(object):
@@ -1044,5 +1044,5 @@
     from mpl_toolkits.mplot3d import Axes3D
     current_dir = os.path.abspath(os.path.curdir)
-    print current_dir
+    print(current_dir)
     for i in range(6):
         current_dir, _ = os.path.split(current_dir)
Index: src/sas/sascalc/data_util/calcthread.py
===================================================================
--- src/sas/sascalc/data_util/calcthread.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/data_util/calcthread.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -295,5 +295,5 @@
     """
     def __init__(self, n=20000):
-        print thread.get_ident()
+        print(thread.get_ident())
         self.starttime = clock()
         self.done = False
@@ -307,20 +307,20 @@
         self.work2.queue(n)
         self.work3.queue(n)
-        print "Expect updates from Main every second and from thread every 2.5 seconds"
-        print ""
+        print("Expect updates from Main every second and from thread every 2.5 seconds")
+        print("")
         self.work.ready(.5)
         while not self.done:
             sleep(1)
-            print "Main thread %d at %.2f" % (thread.get_ident(),
-                                              clock() - self.starttime)
+            print("Main thread %d at %.2f" % (thread.get_ident(),
+                                              clock() - self.starttime))
 
     def update(self, i=0):
-        print "Update i=%d from thread %d at %.2f" % (i, thread.get_ident(),
-                                                      clock() - self.starttime)
+        print("Update i=%d from thread %d at %.2f" % (i, thread.get_ident(),
+                                                      clock() - self.starttime))
         self.work.ready(2.5)
 
     def complete(self, total=0.0):
-        print "Complete total=%g from thread %d at %.2f" % (total,
+        print("Complete total=%g from thread %d at %.2f" % (total,
                                                     thread.get_ident(),
-                                                    clock() - self.starttime)
+                                                    clock() - self.starttime))
         self.done = True
Index: src/sas/sascalc/dataloader/readers/associations.py
===================================================================
--- src/sas/sascalc/dataloader/readers/associations.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/dataloader/readers/associations.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -71,5 +71,5 @@
                     logger.error(msg)
     else:
-        print "Could not find reader association settings\n  %s [%s]" % (__file__, os.getcwd())
+        print("Could not find reader association settings\n  %s [%s]" % (__file__, os.getcwd()))
          
          
Index: src/sas/sascalc/dataloader/readers/red2d_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/red2d_reader.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/dataloader/readers/red2d_reader.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -82,5 +82,5 @@
         detector = Detector()
         if len(output.detector) > 0:
-            print str(output.detector[0])
+            print(str(output.detector[0]))
         output.detector.append(detector)
                 
Index: src/sas/sascalc/fit/AbstractFitEngine.py
===================================================================
--- src/sas/sascalc/fit/AbstractFitEngine.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/fit/AbstractFitEngine.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -627,3 +627,3 @@
         """
         """
-        print str(self)
+        print(str(self))
Index: src/sas/sascalc/fit/Loader.py
===================================================================
--- src/sas/sascalc/fit/Loader.py	(revision ac07a3acc20dbf79c564bf642aece71a02c2c862)
+++ src/sas/sascalc/fit/Loader.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -54,5 +54,5 @@
                     self.dx = np.zeros(len(self.x))
                 except:
-                    print "READ ERROR", line
+                    print("READ ERROR", line)
             # Sanity check
             if not len(self.x) == len(self.dx):
@@ -80,7 +80,7 @@
     load = Load()
     load.set_filename("testdata_line.txt")
-    print load.get_filename() 
+    print(load.get_filename()) 
     load.set_values()
-    print load.get_values()
+    print(load.get_values())
     
             
Index: src/sas/sascalc/pr/fit/AbstractFitEngine.py
===================================================================
--- src/sas/sascalc/pr/fit/AbstractFitEngine.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/pr/fit/AbstractFitEngine.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -630,3 +630,3 @@
         """
         """
-        print str(self)
+        print(str(self))
Index: src/sas/sascalc/pr/fit/Loader.py
===================================================================
--- src/sas/sascalc/pr/fit/Loader.py	(revision ac07a3acc20dbf79c564bf642aece71a02c2c862)
+++ src/sas/sascalc/pr/fit/Loader.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -54,5 +54,5 @@
                     self.dx = np.zeros(len(self.x))
                 except:
-                    print "READ ERROR", line
+                    print("READ ERROR", line)
             # Sanity check
             if not len(self.x) == len(self.dx):
@@ -80,7 +80,7 @@
     load = Load()
     load.set_filename("testdata_line.txt")
-    print load.get_filename() 
+    print(load.get_filename()) 
     load.set_values()
-    print load.get_values()
+    print(load.get_values())
     
             
Index: src/sas/sascalc/pr/num_term.py
===================================================================
--- src/sas/sascalc/pr/num_term.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/pr/num_term.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -197,3 +197,3 @@
     # Testing estimator
     est = NTermEstimator(invert)
-    print est.num_terms()
+    print(est.num_terms())
Index: src/sas/sascalc/simulation/analmodelpy/tests/signon.py
===================================================================
--- src/sas/sascalc/simulation/analmodelpy/tests/signon.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/analmodelpy/tests/signon.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -17,16 +17,16 @@
     from analmodelpy import analmodelpy as analmodelpymodule
 
-    print "copyright information:"
-    print "   ", analmodelpy.copyright()
-    print "   ", analmodelpymodule.copyright()
+    print("copyright information:")
+    print("   ", analmodelpy.copyright())
+    print("   ", analmodelpymodule.copyright())
 
-    print
-    print "module information:"
-    print "    file:", analmodelpymodule.__file__
-    print "    doc:", analmodelpymodule.__doc__
-    print "    contents:", dir(analmodelpymodule)
+    print()
+    print("module information:")
+    print("    file:", analmodelpymodule.__file__)
+    print("    doc:", analmodelpymodule.__doc__)
+    print("    contents:", dir(analmodelpymodule))
 
-    print
-    print analmodelpymodule.hello()
+    print()
+    print(analmodelpymodule.hello())
 
 # version
Index: src/sas/sascalc/simulation/analmodelpy/tests/testanal_model.py
===================================================================
--- src/sas/sascalc/simulation/analmodelpy/tests/testanal_model.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/analmodelpy/tests/testanal_model.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -18,12 +18,12 @@
     from SASsimulation import geoshapespy
 
-    print "copyright information:"
-    print "   ", analmodelpymodule.copyright()
+    print("copyright information:")
+    print("   ", analmodelpymodule.copyright())
 
-    print
-    print "module information:"
-    print "    file:", analmodelpymodule.__file__
-    print "    doc:", analmodelpymodule.__doc__
-    print "    contents:", dir(analmodelpymodule)
+    print()
+    print("module information:")
+    print("    file:", analmodelpymodule.__file__)
+    print("    doc:", analmodelpymodule.__doc__)
+    print("    contents:", dir(analmodelpymodule))
 
     a = geoshapespy.new_sphere(1.0)
Index: src/sas/sascalc/simulation/geoshapespy/tests/testshapes.py
===================================================================
--- src/sas/sascalc/simulation/geoshapespy/tests/testshapes.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/geoshapespy/tests/testshapes.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -16,9 +16,9 @@
     from SASsimulation import geoshapespy
 
-    print
-    print "module information:"
-    print "    file:", geoshapespy.__file__
-    print "    doc:", geoshapespy.__doc__
-    print "    contents:", dir(geoshapespy)
+    print()
+    print("module information:")
+    print("    file:", geoshapespy.__file__)
+    print("    doc:", geoshapespy.__doc__)
+    print("    contents:", dir(geoshapespy))
 
     sp = geoshapespy.new_sphere(10)
Index: src/sas/sascalc/simulation/iqPy/tests/signon.py
===================================================================
--- src/sas/sascalc/simulation/iqPy/tests/signon.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/iqPy/tests/signon.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -17,15 +17,15 @@
     from iqPy import iqPy as iqPymodule
 
-    print "copyright information:"
-    print "   ", iqPy.copyright()
-    print "   ", iqPymodule.copyright()
+    print("copyright information:")
+    print("   ", iqPy.copyright())
+    print("   ", iqPymodule.copyright())
 
-    print
-    print "module information:"
-    print "    file:", iqPymodule.__file__
-    print "    doc:", iqPymodule.__doc__
-    print "    contents:", dir(iqPymodule)
+    print()
+    print("module information:")
+    print("    file:", iqPymodule.__file__)
+    print("    doc:", iqPymodule.__doc__)
+    print("    contents:", dir(iqPymodule))
 
-    print
+    print()
 
 # version
Index: src/sas/sascalc/simulation/iqPy/tests/testiq.py
===================================================================
--- src/sas/sascalc/simulation/iqPy/tests/testiq.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/iqPy/tests/testiq.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -17,5 +17,5 @@
 	iqPy.new_iq(10,0.01,0.4)
 
-	print "pass."
+	print("pass.")
 
 # version
Index: src/sas/sascalc/simulation/pointsmodelpy/tests/signon.py
===================================================================
--- src/sas/sascalc/simulation/pointsmodelpy/tests/signon.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sascalc/simulation/pointsmodelpy/tests/signon.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -17,16 +17,16 @@
     from pointsmodelpy import pointsmodelpy as pointsmodelpymodule
 
-    print "copyright information:"
-    print "   ", pointsmodelpy.copyright()
-    print "   ", pointsmodelpymodule.copyright()
+    print("copyright information:")
+    print("   ", pointsmodelpy.copyright())
+    print("   ", pointsmodelpymodule.copyright())
 
-    print
-    print "module information:"
-    print "    file:", pointsmodelpymodule.__file__
-    print "    doc:", pointsmodelpymodule.__doc__
-    print "    contents:", dir(pointsmodelpymodule)
+    print()
+    print("module information:")
+    print("    file:", pointsmodelpymodule.__file__)
+    print("    doc:", pointsmodelpymodule.__doc__)
+    print("    contents:", dir(pointsmodelpymodule))
 
-    print
-    print pointsmodelpymodule.hello()
+    print()
+    print(pointsmodelpymodule.hello())
 
 # version
Index: src/sas/sascalc/simulation/pointsmodelpy/tests/test2dui.py
===================================================================
--- src/sas/sascalc/simulation/pointsmodelpy/tests/test2dui.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/simulation/pointsmodelpy/tests/test2dui.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -46,5 +46,5 @@
 
         data = ImageData(value_grid, index_vals)
-        print value_grid, index_vals
+        print(value_grid, index_vals)
         
         # Create the index axes
Index: src/sas/sascalc/simulation/pointsmodelpy/tests/testcomplexmodel.py
===================================================================
--- src/sas/sascalc/simulation/pointsmodelpy/tests/testcomplexmodel.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/simulation/pointsmodelpy/tests/testcomplexmodel.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -61,7 +61,7 @@
   iqPy.OutputIQ(iqcomplex,"testcomplex2.iq")
 
-  print "p(r) is saved in testcomplex2.pr"
-  print "I(Q) is saved in testcomplex2.iq"
-  print "pass"
+  print("p(r) is saved in testcomplex2.pr")
+  print("I(Q) is saved in testcomplex2.iq")
+  print("pass")
 
 #testing 3, insert one empty pdbmodel and one loresmodel
@@ -88,7 +88,7 @@
   iqPy.OutputIQ(iqcomplex,"testcomplex3.iq")
 
-  print "p(r) is saved in testcomplex3.pr"
-  print "I(Q) is saved in testcomplex3.iq"
-  print "pass"
+  print("p(r) is saved in testcomplex3.pr")
+  print("I(Q) is saved in testcomplex3.iq")
+  print("pass")
 
 # Test 2D complex model
@@ -106,6 +106,6 @@
     pointsmodelpy.get_complexpoints(complex,vpcomplex);
  
-    print pointsmodelpy.get_complex_iq_2D(complex,vpcomplex,0.1,0.1);
-    print pointsmodelpy.get_complex_iq_2D(complex,vpcomplex,0.01,0.1);
+    print(pointsmodelpy.get_complex_iq_2D(complex,vpcomplex,0.1,0.1));
+    print(pointsmodelpy.get_complex_iq_2D(complex,vpcomplex,0.01,0.1));
 
 
Index: src/sas/sascalc/simulation/pointsmodelpy/tests/testlores.py
===================================================================
--- src/sas/sascalc/simulation/pointsmodelpy/tests/testlores.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/simulation/pointsmodelpy/tests/testlores.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -10,10 +10,10 @@
 #    print "   ", pointsmodelpymodule.copyright()
 
-    print
-    print "module information:"
-    print "    file:", pointsmodelpy.__file__
-    print "    doc:", pointsmodelpy.__doc__
-    print "    contents:", dir(pointsmodelpy)
-    print "    contents:", dir(geoshapespy)
+    print()
+    print("module information:")
+    print("    file:", pointsmodelpy.__file__)
+    print("    doc:", pointsmodelpy.__doc__)
+    print("    contents:", dir(pointsmodelpy))
+    print("    contents:", dir(geoshapespy))
 
 #    a = geoshapespy.new_singlehelix(10,2,30,2)
@@ -46,7 +46,7 @@
     pointsmodelpy.outputPDB(lm,vp,"modelpy.pseudo.pdb")
 
-    print "calculating distance distribution"
+    print("calculating distance distribution")
     rmax = pointsmodelpy.get_lores_pr(lm,vp)
-    print "finish calculating get_lores_pr, and rmax is:", rmax
+    print("finish calculating get_lores_pr, and rmax is:", rmax)
     pointsmodelpy.outputPR(lm,"testlores.pr")
     pointsmodelpy.get_lores_iq(lm,iq)
@@ -54,7 +54,7 @@
     iqPy.OutputIQ(iq, "testlores.iq")
 
-    print "Testing get I from a single q"
+    print("Testing get I from a single q")
     result = pointsmodelpy.get_lores_i(lm,0.1)
-    print "The I(0.1) is: %s" % str(result) 
+    print("The I(0.1) is: %s" % str(result)) 
 
 # version
Index: src/sas/sascalc/simulation/pointsmodelpy/tests/testlores2d.py
===================================================================
--- src/sas/sascalc/simulation/pointsmodelpy/tests/testlores2d.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sascalc/simulation/pointsmodelpy/tests/testlores2d.py	(revision 9c3d784dfd54f5c129d7220da877e5dd6c18f62b)
@@ -45,8 +45,8 @@
   value_grid = zeros((100,100),Float)
   width, height = value_grid.shape
-  print width,height
+  print(width,height)
 
   I = pointsmodelpy.calculateI_Qxy(lm,0.00001,0.000002)
-  print I
+  print(I)
 
   Imax = 0
@@ -86,8 +86,8 @@
   value_grid = zeros((100,100),Float)
   width, height = value_grid.shape
-  print width,height
+  print(width,height)
 
   I = pointsmodelpy.calculateI_Qxy(lm,0.00001,0.000002)
-  print I
+  print(I)
 
   Imax = 0
@@ -109,7 +109,7 @@
 if __name__ == "__main__":
 
-  print "start to test lores 2D"
+  print("start to test lores 2D")
 #  test_lores2d(10)
   value_grid = get2d_2()
-  print value_grid
-  print "pass"
+  print(value_grid)
+  print("pass")
