Найти - Пользователи
Полная версия: Почему встроенный Python не работает с PYD?
Начало » Python для экспертов » Почему встроенный Python не работает с PYD?
1 2
Андрей Светлов

boost.python замечательно подходит и для вызова питона из C++. Посмотрите на boost::python::object

mrgloom
Андрей Светлов
Py_SetProgramName и Py_SetPythonHome вызывали перед Py_Initialize?
нет, в примерах доков такого вроде не было, буду иметь ввиду.
вроде как их и не надо вызывать если питон стоит по дефолту?


Андрей Светлов
Да, нужно чтобы .lib, .dll и .pyd все вместе использовали или релизную или дебажную сборку.
я только не понял как должны генерится .pyd файлы, ибо дебажных *_d.pyd файлов я не нашел в папках после сборки.

питон статически у меня собрать получилось, но вот использовать в программе не получилось.
У меня есть главная программа .exe собирается с boost,opencv,fftw статически и есть модуль расширение .dll куда boost подключается статически(хотя я от него могу отказаться впринципе) и подключается питон.

как подключал: выбрал /MT, в инпут линкера python27.lib(для релиза), ну и прописал путь до библиотеки, проинклюдил python.h.
всё компилируется и запускается, только выдает ошибку R6034(причем пробовал подключать динамически /MD ошибка не уходит)
захожу в dependency walker смотрю зависимости своей .dll и там почему то python27.dll, только почему он там оказался если я линкуюсь статически?
Еще назрел вопрос, даже если я соберу питон статически( в надежде на то, что программа будет независима и сама в себе, т.е. не надо будет ставить интерпретатор питона на каждой машине где я хочу запустить программу) то мне всё равно нужно будет кидать в папку с программой мои скрипты .py и Lib папку от питона? (т.е. от статической линковки выигрыш получается небольшой убираются только папка Dll и python27.dll)
нельзя ли вообще всё встроить в программу?


boost::python::object
на данный момент у меня вроде всё готово в плане кода, но если буду расширять\усложнять, то присмотрюсь.
mrgloom

похоже ошибка R6034 была из-за строчки
if(!PyRun_SimpleString("import Image"))



Андрей Светлов

Дебажный питон генерит _d.pyd Все .py файлы можно собрать в zip или даже прицепить этот zip в хвост .exe

Мне трудно советовать, не видя конфигурацию вашего проекта. Из общих соображений — рекомендую никогда не использовать статическую линковку. Сроблем с ней много, выгоды совсем не очевидны

mrgloom
я пробую компилировать проект
D:\Python-2.7.3\Python-2.7.3\PCbuild\pcbuild.sln
не меняя никакие настройки, но автоматически не генерятся .pyd файлы, может их надо как то отдельно?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB