Какую версию Visual Studio и/или MinGW мне нужно для создания модулей расширения для данной версии Python?

Чтобы поставить этот вопрос по-другому, какая версия Visual С++ была официальной сборкой Python из python.org построенного с помощью Python и каких версий MinGW совместимы с этими версиями Visual С++?

Доступна ли эта информация на каком-либо веб-сайте?

Ответы

Ответ 1

Python 2.6, 2.7, 3.1 и 3.2 были скомпилированы с VS 2008. Python 3.3 и 3.4 скомпилированы с VS 2010.

Я не уверен в совместимости с MinGW.

Если вы ищете компиляторы командной строки, Microsoft выпустила два разных SDK для Windows 7, которые включают компиляторы командной строки. Первый SDK (для .NET 3.5) включает компиляторы VS 2008. Второй SDK (для .NET 4.0) включает компиляторы VS 2010.

Обновление: файл PCbuild\readme.txt в исходном дистрибутиве каждой версии Python включает версию Visual Studio, используемую для создания двоичных файлов.

Ответ 2

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

Если вы хотите узнать версии библиотеки времени исполнения для официальных бинарных выпусков, вы можете сами это использовать, используя свой любимый инструмент зависимостей DLL, например Dependency Walker, или, посмотрев, какая библиотека, используемая во время выполнения, содержится в установщике.

Основываясь на моем очень кратком исследовании, я считаю, что вы можете использовать последнюю версию MinGW с любой из этих библиотек времени исполнения. По умолчанию используется msvcrt.dll, среда выполнения C встроена в Windows, но, похоже, вместо этого используется поддержка VС++.