Tuve un problema similar.
Encontré que el problema podría deberse a las siguientes posibilidades:
-
Cuando se configura la QgsApplication, el PrefixPath debe hacerse correctamente.
Mi QGIS estaba instalado en /usr/share/qgis.
Pero de alguna manera necesito establecer el PrefixPath como "/usr" y no "/usr/share/qgis":
QgsApplication.setPrefixPath("/usr", True)
-
La ruta de los archivos .shp.
Asumiendo que están bajo un subdirectorio de la ruta actual, "Mapas/", puedes cargar el archivo con:
mapFile = "Maps/world_borders.shp"
layer = QgsVectorLayer(os.path.abspath(mapFileName), mapFileName[mapFileName.rfind("/")+1:-4], "ogr")
-
Por último, no todos los archivos .shp son "iguales" ;P
Algunos archivos .shp pueden cargarse sin problemas en QGIS y visualizarse.
Algunos, probablemente creados en ESRI ArcMap, requieren el resto de los archivos (.shp, .shx, .dbf, .prj, .sbn, .sbx)
Espero que esta información ayude.