По идее всё зависит от от типов данных в определении сигнала. Если там питоновские объекты (которые насколько я понимаю для голого Qt идут как void*)- то без python.h не обойтись.
А если сигнал объявлен через PyQt5.QtCore.pyqtSignal, с указанием только простых типов вроде чисел и строк - по идее аргументы будут передаваться не как void* на питоновские объекты, а как int/QString
Сделанный так сигнал будет годен к употреблению в таком же виде, как и определённый в C++.