Извлечь resource.setrlimit () . Он работает только в системах Unix, но, похоже, это то, что вам нужно, так как вы можете выбрать максимальный размер кучи для вашего процесса и его дочерних элементов с помощью параметра resource.RLIMIT_DATA.
РЕДАКТИРОВАТЬ: Добавление примера:
import resource
rsrc = resource.RLIMIT_DATA
soft, hard = resource.getrlimit(rsrc)
print 'Soft limit starts as :', soft
resource.setrlimit(rsrc, (1024, hard)) #limit to one kilobyte
soft, hard = resource.getrlimit(rsrc)
print 'Soft limit changed to :', soft
Я не уверен, какой именно у вас сценарий использования, но, возможно, вам нужно вместо этого установить ограничение на размер стека с помощью resouce.RLIMIT_STACK. Пройдя этот предел, вы отправите сигнал SIGSEGV вашему процессу, и для его обработки вам нужно будет использовать альтернативный стек сигналов, как описано в setrlimit Linux manpage . Однако я не уверен, реализован ли sigaltstack в python, так что это может оказаться затруднительным, если вы захотите восстановиться после перехода через эту границу.