Андрей Светлов
Март 11, 2009 22:49:36
Сейчас - финансовый софт. Т.е. чисел в нем просто дохрена. И чуть-чуть больше. Низкая производительность decimal становится заметной на performance tests.
А толку - заворачивать в DLL? Мне-то нужен нормальный питоновский интерфейс. Т.е. PYD, если уж на то пошло.
Lexander
Март 12, 2009 11:05:21
Андрей Светлов
А толку - заворачивать в DLL? Мне-то нужен нормальный питоновский интерфейс. Т.е. PYD, если уж на то пошло.
По сути то PYD-файл - это и есть DLL. Просто расширение другое. Поменять расширение файла и - вперед.
Под *никсами питоновский модуль расширения (extension module) имеет расширение SO.
Могу ошибаться, но вроде как с версии 2.5 кушаются и файлы с раширением DLL.
Lexander
Март 12, 2009 11:17:50
На всякий случай решил дописать: да, конечно, DLL должна быть сделана так, чтобы Питон ее понимал и сделана была на С/С++.
Ну это так, для потомков уточнение, а не для вас.
Cleric
Март 12, 2009 12:26:33
PYD это не просто DLL'ка, как вы например представляете вызов фунции void* func() из питона?
то о чём вы говорите называется ctypes
Lexander
Март 12, 2009 13:38:47
Cleric
См. предыдущий пост.
Андрей Светлов
Март 12, 2009 16:36:15
Lexander
То, о чем вы говорите - называется Python C Extension.
И отличается эта штука от “обычной” DLL далеко не только расширением файла :)
Раз я хотел завернуть decNumber, но не завернул - то да, делать PYD не пробовал :)
Как выглядит процесс - представляю отлично. Если andreytata пишет, что он “на Python C API не одну собаку съел” то я, можно сказать, рассказывал ему о рецептах приготовления оного зверя и предпочтительных соусах.
Так что вполне отдаю себе отчет в трудоемкости требуемой операции. К тому же если выкладывать в ОпенСорс - нужно делать на “голом API”. Столь любимый мною boost.python просто не смотрится в таком контексте. Не поймут-с. Работы немало. Быть может, когда-нибудь таки соберусь с духом.