Я не верю, что есть какая-то волшебная пуля, чтобы сделать исходники C для расширения Python, закодированные для какой-то старой версии Python 2, в действительные исходники C для одного кода, написанного для Python 3 - это требует понимания C и как C API изменился, и что именно делает расширение в каждой части своего кода. Поверьте, если бы мы знали о каком-то волшебном способе сделать это временно без такого человеческого знания и понимания, мы бы включили «генератор кода» (например, 2to3 для источников Python - и даже это имеет существенные ограничения!) Для такой перевод кода С.
На практике, даже несмотря на то, что Python 3.1 сам по себе зрелый и готовый к работе язык, вам еще не следует переносить свой код (или писать совершенно новое приложение) в Python 3.1, если вам нужен какой-то Python 2. * расширение, которое вы не можете портировать - придерживайтесь версии 2.6, пока требуемые расширения не станут доступны (или вы не выучили достаточно C, чтобы портировать их самостоятельно - или перепишите их на Cython, который плавно поддерживает Python 2. * и 3. *, я полагаю, что это лишь небольшая осторожность со стороны программиста).