Да, вы можете использовать valgrind
с Python. Вам просто нужно использовать файл подавления valgrind, предоставленный разработчиками Python, поэтому вы не получите кучу ложных срабатываний из-за пользовательских функций распределения / перераспределения памяти в Python.
Файл подавления valgrind можно найти здесь: http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp
ВАЖНО: Вам необходимо раскомментировать строки для PyObject_Free и PyObject_Realloc в файле подавления *.
Рекомендуемый синтаксис использования:
$ valgrind --tool=memcheck --suppressions=valgrind-python.supp \
python -E -tt ./my_python_script.py
См. Также этот файл README из репозитория Python SVN, в котором описаны различные способы использования Python с valgrind:
http://svn.python.org/projects/python/trunk/Misc/README.valgrind
* - В качестве альтернативы вы можете перекомпилировать Python с отключенным PyMalloc, что позволяет обнаруживать больше утечек памяти, которые не будут отображаться, если вы просто отключите PyMalloc.