Могу ли я использовать VS2005 для создания расширений для системы Python, созданной с VS2003 - PullRequest
3 голосов
/ 03 марта 2009

RDFLib необходимо скомпилировать расширения C для установки на ActiveState Python 2.5; насколько я могу судить, нигде в Интернете нет бинарного установщика. При попытке установить с python setup.py install выдает следующее сообщение:

error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

В сети есть различные ресурсы о настройке компилятора для distutils, которые обсуждают использование MinGW, хотя я пока не получил эту работу. В качестве альтернативы у меня VS2005.

Может кто-нибудь категорически сказать мне, можно ли использовать компилятор C в VS2005 для сборки модулей расширения Python для скомпилированного Python VS2003 (в данном случае ActiveState Python 2.5). Если это возможно, какая конфигурация необходима?

Ответы [ 3 ]

3 голосов
/ 29 марта 2009

Основная проблема - библиотека времени выполнения C. Python 2.4 / 2.5 связан с msvcr71.dll и поэтому все C-расширения должны быть связаны с этим dll.

Другой вариант - использовать gcc (mingw) вместо VS2005, вы можете использовать его только для компиляции расширений Python. Есть достойный установщик, который позволяет вам настроить gcc как компилятор по умолчанию для вашей версии Python:

http://www.develer.com/oss/GccWinBinaries

2 голосов
/ 03 марта 2009

Я не могу сказать вам категорически, но я не верю, что вы можете. Я столкнулся с этой проблемой только в обратной ситуации (Python собран с VS2005, пытаюсь с VS2003). Поиск в интернете не позволил взломать его. Мое возможное решение было получить VC Express, поскольку VC2005 - это когда Microsoft начала выпускать бесплатные версии. Но это, очевидно, не вариант для вас.

Я не использую ActiveState Python, но есть ли более новая версия, которую вы могли бы использовать? Исходный код поставляется с файлами проекта для VS2008, и я почти уверен, что двоичные сборки python.org прекратили использовать VS2003 некоторое время назад.

0 голосов
/ 23 марта 2012

На сегодняшний день, март 2012 года, я могу категорически сказать, что это возможно с Python2.4.4 (только один, который я тестировал) и Visual Studio 2005 и 2008. Просто установите VS10, чтобы проверить это. Я не знаю, почему это работает, и у меня проблемы с использованием distutils, поэтому мне приходится компилировать вручную.

...