Czy próbowałeś wybrać jeden z zestawów wyników?
for result in cursor.stored_results():
people = result.fetchall()
Możliwe, że alokuje dla wielu zestawów wyników, nawet jeśli masz tylko jeden SELECT
św. Wiem, że w procedurach składowanych MySQLi PHP robię to, aby umożliwić zwracanie zmiennych INOUT i OUT (które znowu nie masz, ale może i tak są alokowane).
Kompletny kod, którego używam (który działa) to:
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()