Har du testat att välja en av resultatuppsättningarna?
for result in cursor.stored_results():
people = result.fetchall()
Det kan vara så att den allokerar för flera resultatuppsättningar även om du bara har en SELECT
stmt. Jag vet att i PHP:s MySQLi lagrade procedurer gör detta för att tillåta INOUT och OUT variabla returer (vilket du återigen inte har någon av, men kanske allokerar det ändå).
Den fullständiga koden jag använder (som fungerar) är:
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()