Using bpy in a standalone python script dies when rendering EDIT (Solution):
I was able to fix this by adding the following line:
bpy.context.scene.render.engine = 'CYCLES'

This works fine for me as I need to use the cycles engine anyways
Original Post:
I'm writing a standalone python script to render .OBJ files automatically, without a .blend file or anything.  I installed bpy 2.82 on my windows machine using the instructions found here.  And I have python 3.7.9 installed.
Currently, as just a test to get my bearings, I tried the following code to try to setup a simple scene, load in a .OBJ, and render it out:
    import bpy
    import os
    from math import radians

    maplet_path = 'obj_files\\bunny.obj'
    image_out_path = 'render.png'

    # Create a Scene:
    scene       = bpy.data.scenes.new(&quot;Scene&quot;)
    camera_data = bpy.data.cameras.new(&quot;Camera&quot;)
    light_data  = bpy.data.lights.new(name=&quot;Light&quot;, type='SUN')

    # Import the maplet data:
    local_path = os.getcwd()
    bpy.ops.import_scene.obj(filepath=os.path.join(local_path,maplet_path))
    scene.render.filepath = os.path.join(local_path,image_out_path)
    scene.render.image_settings.file_format='PNG'

    # Get handles for all objects:
    maplet = bpy.context.selected_objects[0] 
    scene = bpy.data.scenes.new(&quot;Scene&quot;)
    camera = bpy.data.objects.new(&quot;Camera&quot;, camera_data)
    sun    = bpy.data.objects.new(name=&quot;Light&quot;, object_data=light_data)

    # Setup camera parameters:
    scene.render.resolution_x = 1920
    scene.render.resolution_y = 1080
    camera.location = (-2.0, 3.0, 3.0)
    camera.rotation_euler = ([radians(a) for a in (422.0, 0.0, 149)])

    # Setup scene:
    sun.location = (2.0,2.0,2.0)
    sun.rotation_euler = (radians(10), radians(15), radians(20))
    maplet.location = (0,0,0)
    maplet.rotation_euler = (0,0,0)
        
    # Add camera to the scene:
    scene.camera = camera

    # Update the scene:
    bpy.context.view_layer.update()

    # Render:
    bpy.ops.render.render(&quot;EXEC_DEFAULT&quot;,write_still=True)
    bpy.data.images['Render Result'].save_render(os.path.join(local_path,image_out_path))
    print('hi')

Unfortunately, the program runs perfectly fine, but once it gets to the line:
bpy.ops.render.render(&quot;EXEC_DEFAULT&quot;,write_still=True)

it hangs for a moment, and then just exits.  It never prints 'hi', and it never writes any image.  It also doesn't print out any errors or anything else, it just stops running.
I tried stepping through with pdb and it appears to hang/fail at:
c:\......\python\python37\2.82\scripts\modules\bpy\ops.py(182)idname_py()-'render.render'
-&gt; return self._module + &quot;.&quot; + self._func

Is there something wrong with how I went about installing bpy?  Or something wrong with the script I've written?
Adding
bpy.context.scene.render.engine = 'CYCLES'

Fixed this issue