The "Westinghouse Petite Crackle Solar Path Light, Black" is both very cheap and quite pretty. Here is a mount you can print to stick them on fenceposts or other flat surfaces.
Why use these lights on fenceposts instead of other lights? Well, I've been using other solar lights for years, but most only extend about 15mm inside their mount and I've had problems with them getting blown out of their mounts -- especially for lights with shapes that can catch wind. The head of this light has a very pretty and unusual design in which both the solar cell and white LED are inside a fairly heavy glass ball and the battery is inside the shaft, extending about 45mm in. Thus, these lights are far less likely to be lifted out by wind. I suspect the glass ball also is better protection against the weather than the plastic covers most solar lights use, although there is a bottom drain hole which I'd recommend partially blocking so bugs can't get in.
Some of the solar lights I've tried on my fenceposts were pretty expensive, and some even came with mounting plates. These lights are quite cheap; I bought mine at Walmart for $1.50 each. They come with a 170mm hollow mounting post and ground spike -- neither of which is used in my mounting design. Instead, you simply 3D print the custom mount, nail or screw it to the top of the fencepost, and drop the light head's shaft containing the battery into the 3D-printed mount.
The mount prints in about half an hour on my MakerGear M2 using 0.25mm PLA with 5% fill. It's plenty solid despite using only about 11g of PLA.