I think you can use a shapefile combination to read files, and shapely for all data processing.
I used shapely to work with geodata tapes that were loaded into the database, to work with point and polygon data.
In your comments, if you just want to just display the shapefile in your PyQt application, then you really need to convert it to SVG and display it directly. I did not use this lib conversion , but I'm sure I like them more. Then you can simply use QSvgWidget to load and display it
source share