You can use SIM800L, with AT command from serial, I use Sparkfun GPIO board to send and receive some text
very expensive, SIM800L cost 20x less.........................................
My company (PreTalen) does a lot of research into GPS. We test and characterize a ton of receivers, and I can tell you that U-blox has earned a lot of respect here for their products. (I am not being paid to endorse them.) The M8N is one of the best civilian receivers on the market, but the Ublox 7 is pretty great too. If you have a hub/adapter, they make one that is affordable and has a nice form factor here.
Then it's as easy as:
>> pip install pyserial
gps = serial.Serial('/dev/ttyACM0')
You will need to reference someplace like this to parse out the NMEA data, but that should get you started.