Hai provato a selezionare uno dei set di risultati?
for result in cursor.stored_results():
people = result.fetchall()
Potrebbe essere l'allocazione per più set di risultati anche se hai solo un SELECT
stmt. So che nelle procedure memorizzate MySQLi di PHP lo fanno per consentire i ritorni delle variabili INOUT e OUT (che di nuovo, non ne hai nessuno, ma forse sta comunque allocando).
Il codice completo che sto usando (che funziona) è:
import mysql.connector
cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.callproc("getperson",[1])
for result in cursor.stored_results():
people=result.fetchall()
for person in people:
print person
cnx.close()