Я предположил, что мой модуль Python C может
получить доступ к материалам Pygame непосредственно в C.
это тот случай?
Нет, скорее всего это просто потому, что было необходимо скомпилировать расширение Pygame Python.
Я не понимаю, что вы имеете в виду, когда говорите, что видите 2 экземпляра Pygame. Есть столько примеров, сколько вы создаете, ни больше, ни меньше. Если у вас есть скрипт, который создает объекты Pygame, а ваше расширение также создает объекты Pygame, то, конечно, у вас будет 2 набора объектов. Как автор приложения, вы должны решить, какая его часть будет отвечать за взаимодействие с Pygame. Если другой части требуется доступ к этим объектам Pygame, вы передаете их в качестве аргументов.