Python equivalent code for Matlab bandpass function
I know it is a bit late, but i had the SAME issue as you today. But from what you showed, i may got the solution similar to Matlab. I don't know if it is the right answer but you could tell me in a future!
Just to complement what you have already said, in the matlab documentation for the function, we have: stopband attenuation of 60 dB.
I did some changes from my variables, to fit your variables.

from scipy.signal import firwin, remez, kaiser_atten, kaiser_beta, kaiserord 
Fs = 128.0
lowcut = 1 #In Hertz
highcut = 5 #In Hertz
stopbbanAtt = 60  #stopband attenuation of 60 dB.
width = .5 #This sets the cutoff width in Hertz
nyq = 0.5*Fs
ntaps, gb= kaiserord(stopbbanAtt, width/nyq)
atten = kaiser_atten(ntaps, width/nyq)
beta = kaiser_beta(atten)
a = 1.0
taps = firwin(ntaps, [lowcut, highcut], nyq=nyq, pass_zero=False,window=('kaiser', beta), scale=False)
filtered_signal = signal.filtfilt(taps, a, signal)

From that, i applied FFT in both: Matlab &amp; Python and in spectral analisys i've got the same cut frequencies with my own 1-D data from EEG .