Updated with the second part to the solution.
When you click "run script," Python errors are reported in the console. Blender API errors, however, are not. If you have Blender API errors before the line where your call to print() happens, then your code never reaches that line. Blender and Python both quietly let this happen without error or warning.
Tick the "register" box in the text editor, save, and click "run script". Your script class should have a bl_label field set to a string. Go to the viewport, press spacebar, and type that string. When it shows up in the results, click it.
Now your Blender API errors will show themselves. Correct your code, and when your print() call is reached, it will print to the system console.
I'm shocked that this doesn't seem to appear anywhere on threads about this yet, especially since differences between types such as BMesh and Mesh render show-stopping API errors like this really easy to make.