eden
Сен. 30, 2008 08:52:31
В программу на Си можно вставить код Питона, а вот в код на Питоне можно вставить Си?
Если нет, то есть ли какой-нибудь модуль который дает эту возможность?
Спасибо!
evgenyl
Сен. 30, 2008 09:40:39
eden
В программу на Си можно вставить код Питона, а вот в код на Питоне можно вставить Си?
Если нет, то есть ли какой-нибудь модуль который дает эту возможность?
Спасибо!
Да легко, например так
http://ru.wikipedia.org/wiki/Swigили вообще ручками сделать всё
http://www.intuit.ru/department/pl/python/13/2.html
eden
Сен. 30, 2008 10:01:00
Ага, Спасибо
bw
Сен. 30, 2008 12:51:29
Pyrex/Cython, PyInline, и, врде как, есть какой-то отщепенец от PyInline.
p.s. Если пишешь на Си, то boost может пригодиться.
..bw
eden
Сен. 30, 2008 12:54:47
Спасибо
Андрей Светлов
Сен. 30, 2008 14:18:22
Все правильно написали.
Если есть готовая библиотека с простым C API - ctypes.
Нужно чуть больше - pyrex
Требуется приличный C++ “с классами” - boost.python
SWIG не рекомендую - гадость, ИМХО
Писать на Python C API тоже не рекомендую. Читать - нужно уметь. Писать - слишком много и сложно.
bw
Сен. 30, 2008 14:46:59
На SWIG, если не ошибаюсь (сейчас лень смотреть) сделаны PyOpenGL, wxPython и прочие порты.
Знать Python/C все же нужно, если браться за Pyrex/Cython, то этот API тебе понадобится (с очень большой вероятностью), пусть по мелочам, но ориентироваться и понимать основу Python/C необходимо.
..bw
eden
Сен. 30, 2008 14:48:33
Python/C -ещё б доки на русском найти, а то переводить самому нет времени
bw
Сен. 30, 2008 15:37:22
А чего там переводить. Уроков нет, только справочник. Самая большая проблема - это путаница в учете ссылок.
..bw
Андрей Светлов
Сен. 30, 2008 16:25:39
Третий PyOpenGL переписан на ctypes.
Про использование SWIG в wxPython цензурными словами отзываться сложно. Муть редкостная. Ребят оправдывает только почтенный возраст проекта - тогда просто не было достойных альтернатив.