Well, after getting Ogre & Python working with SWIG, I decided to change tack and use a different Python integration library called Boost Python. Whilst it might seem odd to switch just after getting SWIG to work, I changed because Boost Python supports C++ features much beter (including catching C++ exceptions and turning them into Python exceptions, support for namespaces and overloaded operators), it integrates better with my build cycle (doesn’t require a separate generate from interface files and can be built directly into the library), and is more up-to-date with the latest Python libraries. I was finding that SWIG’s emphasis on pure C as opposed to C++ was getting in the way, and Boost has definitely addressed this. Anyway, it’s up and running again using Boost Python, I will be continuing to develop this over the coming weeks.