Форум сайта python.su
Много чего читал: про swig про pinvoke, dll, lib, но так картину и не понял. Хочется писать на пайтоне, но интересуемые фреймворки на с\с++. Не хочу ни от кого зависеть - писать обертки сам, если надо.
1. Нативный код может находиться в: исходниках, dll, lib. В зависимости от этого обертки пишутся по разному?
2. Смотрел про swig. Так к нативному коду еще и файл промежуточный создавать надо. Это единственный путь или есть другие?
3. На сколько это трудоемко, есть ли баги при написании? Обертки - это ведь всего лишь переписывает сигнатур методов, классов?
4. Какие инструменты посоветуете и обучение?
Отредактировано fshshsh (Окт. 9, 2015 00:21:43)
Офлайн
fshshsh
Хочется писать на пайтоне, но интересуемые фреймворки на с\с++
Офлайн
4kpt_IIIда нее, все норм. когда речь заходит, например, о узко специализированных библиотеках, такой подход вполне себе.
Обалдеть…
Офлайн
JOHN_16Ну можно чуть пошире посмотреть на этот вопрос. CFFI облегчает согласование интерфейсов. а функциональность совпадает с ctypes.
Это до 100% того что вам понадобится,
fshshshобертки для lib вообще не пишутся. Т.е. есть один способ использовать lib - собрать свою версию интерпрететора. Способ не очень легкий и не очень полезный. Вы забыли еще одни важный способ оборачивания. Обертки для приложений.
исходниках, dll, lib. В зависимости от этого обертки пишутся по разному?
Отредактировано doza_and (Окт. 9, 2015 09:16:27)
Офлайн
doza_andВ с++ не профессионал, но где-то на уровне джуниора - владею. Пайтон пока изучаю. Хочу попробовать написать игрушку на pyglet и pyopengl. Просто не хочется в один не прекрасный момент упереться в отсутствие нужного инструмента, когда на другом языке он уже будет реализован/обернут (какой-нибудь box2d).
Офлайн
JOHN_16Вы с помощью ctypes оборачивали? Читал, что для обертки, полученной с его помощью, нужно что-то в системном окружении прописывать.
Офлайн
fshshsh
Вот репозиторий кода можете сами глянуть и убедиться что никаких сверх естественных действий не делается.
Офлайн
fshshsh
интересуемые фреймворки на с\с++
4kpt_IIIВот ответ.
“Extending and Embedding the Python Interpreter”
Офлайн