Ответ 1
Пошаговые инструкции. Это предполагает, что у вас есть источник и выстраиваете единое расширение DLL, которое связывает источник напрямую с ним. Я не вернулся через него после создания рабочего проекта, поэтому я, возможно, что-то пропустил. Прокомментируйте этот пост, если вы застряли на шаге. Если у вас есть существующая DLL и вы хотите создать DLL-расширение Python, которое ее обертывает, эти шаги несколько отличаются. Если вам нужна помощь в этом комментарии к этому сообщению, я продолжу его.
Редактировать 8/19/2012. Если вы начинаете с примера C, не используйте -c++
на шаге 13 и используйте .c
вместо .cxx
для расширения файла переноса в шаги 14 и 19.
- Запустите Visual Studio 2010
- Файл, новый, проект из существующего кода...
- Выберите тип проекта "Visual С++" и нажмите "Далее" .
- Введите расположение файла проекта, где находятся файлы .cpp/.h/.i.
- В поле "Имя проекта" выберите имя, используемое в выражении% module в файле .i(дело касается).
- Выберите тип проекта "Проект динамически связанной библиотеки (DLL)" и нажмите "Далее" .
- Добавить в поле "Включить поиск" путь к файлу Python.h, обычно что-то вроде "C:\Python27\include" и нажмите "Далее" .
- Нажмите "Готово".
- Щелкните правой кнопкой мыши проект в обозревателе решений, добавлении, существующем элементе... и выберите файл .i.
- Щелкните правой кнопкой мыши файл .i, Свойства и выберите Конфигурация "Все конфигурации".
- Измените тип элемента на "Custom Build Tool" и нажмите "Применить".
- Выберите "Custom Build Tool" в свойствах (он появится после применения выше).
- Введите командную строку "swig -С++ -python -outdir $(Outdir)% (Identity)" (это предполагает, что SWIG находится в вашем пути и перенаправляет сгенерированный .py файл в каталог Debug или Release по мере необходимости).
- В выводах введите "% (имя файла) _wrap.cxx; $(Outdir)% (имя файла).py".
- Нажмите "ОК".
- Щелкните правой кнопкой мыши файл .i и выберите "Скомпилировать".
- Щелкните правой кнопкой мыши проект, Добавить, Новый фильтр, назовите его "Сгенерированные файлы" .
- Щелкните правой кнопкой мыши "Сгенерированные файлы" , выберите "Свойства" и установите "Файлы SCC" на "False" (если вы используете источник-контроль, это предотвратит попытку VS2010 проверять сгенерированные файлы в этом фильтре).
- Щелкните правой кнопкой мыши "Сгенерированные файлы" , "Добавить", "Выход" и выберите файл _wrap.cxx, который был сгенерирован компиляцией.
- Щелкните правой кнопкой мыши проект, Свойства.
- Выберите Конфигурация "Все конфигурации".
- Выберите Свойства конфигурации, Linker, General, Дополнительные библиотеки и добавьте путь к библиотекам python, обычно "C:\Python27\libs".
- Выберите Свойства конфигурации, Общие и установите TargetName на "_ $(ProjectName)".
- Установите целевое расширение на ".pyd".
- Создайте версию проекта "Release". Вы не можете создать версию Debug, если вы не создадите отладочную версию самого Python.
- Откройте консоль, перейдите в каталог выпуска проекта, запустите python, импортируйте свой модуль и вызовите функцию!