Shifting a fourier spectrum by subpixel amount in python
You'd not do it in frequency domain at all. Use the shift property of the discrete Fourier transform!

Simply multiply the rows of your original image with an $e^{j2\pi \Delta f_x x/W}$ pointwise ($x$: pixel index in that row, $W$: width of image) before transforming to frequency domain to shift by $\Delta f_x$ in row direction. Same for shifts in column direction; multiply columns with $e^{j2\pi \Delta f_y y/H}$ pointwise ($y$: pixel index in that column, $H$: height of image). There's no restrictions on the "fineness" of $\Delta f$ in either direction, and any 2D shift can be understood as a shift in row and one in column direction.

If necessary, transform your image from frequency to spatial domain, do the multiplications, and transform back.