how to distribute objects in a constraint offset integer value?
Use fixed position offset factor of follow path constraint.

For a follow path constraint with fixed position set, then 0 is one end, 1 the other, 0.5 half way along etc.  Related https://blender.stackexchange.com/a/72682/15543

Using this we can thread objects onto a curve.

Code edited from https://blender.stackexchange.com/a/93441/15543 


Demo run , cone, suzanne and cylinder threaded onto a path such that there are 10 items equally spaced. Curve follow is set to False

Test script (Targeted to blender 2.8+). Select the object(s) you wish to thread on the path. Select the path last to make it active object

Edit the res = 10 to have more or less items. Change cyclic to True if the path is a cycle. (Note in link above code tests for this)

Constraints are using default settings for follow and up axes. The location of object copies is set to zero to thread them on the path.  _If making this into an operator would make these properties

import bpy
context = bpy.context
scene = context.scene
curve_ob = context.object
obs = [o for o in context.selected_objects if o is not curve_ob]

res = 10
cyclic = False
new_obs = []
o = 0 if cyclic else 1
pts = res - 1
for i in range(pts + o):
    s = obs[i % len(obs)].copy()
    s.location = (0, 0, 0)
    fp = s.constraints.new(type='FOLLOW_PATH')
    fp.target = curve_ob
    fp.use_fixed_location = True
    fp.use_curve_follow = True
    fp.forward_axis = 'FORWARD_Y' # 'TRACK_NEGATIVE_Y`
    fp.up_axis = 'UP_Z'
    # calculate the offset factor
    fp.offset_factor = i / pts
    scene.collection.objects.link(s)
    new_obs.append(s)


Should you wish to remove the follow path constraint on copies

# remove constraints
scene.update()
for s in new_obs:
    sc = s.constraints[0]
    s.location = s.matrix_world.translation
    s.constraints.remove(sc)