Create still copies of a moving object (using python scripting)
Without operators
Here is an example of doing this without operators.

Have the constrained object as active
Create a copy, strip the follow path constraints from it.
Create all the copies needed from the copy
Loop thru the copies,

calculate the frame,

set and keyframe offset based on frame

change to that frame

give the copy the same matrix world as original at that frame


link copy to collection




Test script:
import bpy

N = 10 # number of copies

context = bpy.context
ob = context.object
scene = context.scene
collection = context.collection

copy = ob.copy()
cons = [c for c in copy.constraints if c.type == 'FOLLOW_PATH']
while cons:
    copy.constraints.remove(cons.pop())
copies = [copy.copy() for i in range(N - 1)]
copies.append(copy)
    
frames = 250    
for i, copy in enumerate(copies):
    f = i * frames / N
    # find constraint properly 0 for example sake
    ob.constraints[0].offset_factor = f / frames
    ob.constraints[0].keyframe_insert(&quot;offset_factor&quot;, frame=f)
    
    scene.frame_set(f)
    copy.matrix_world = ob.matrix_world
    collection.objects.link(copy)