Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2008 08:52:31

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python/C API

В программу на Си можно вставить код Питона, а вот в код на Питоне можно вставить Си?

Если нет, то есть ли какой-нибудь модуль который дает эту возможность?

Спасибо!



Офлайн

#2 Сен. 30, 2008 09:40:39

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Python/C API

eden
В программу на Си можно вставить код Питона, а вот в код на Питоне можно вставить Си?
Если нет, то есть ли какой-нибудь модуль который дает эту возможность?
Спасибо!
Да легко, например так
http://ru.wikipedia.org/wiki/Swig
или вообще ручками сделать всё
http://www.intuit.ru/department/pl/python/13/2.html



Отредактировано (Сен. 30, 2008 09:42:45)

Офлайн

#3 Сен. 30, 2008 10:01:00

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python/C API

Ага, Спасибо



Офлайн

#4 Сен. 30, 2008 12:51:29

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Python/C API

Pyrex/Cython, PyInline, и, врде как, есть какой-то отщепенец от PyInline.

p.s. Если пишешь на Си, то boost может пригодиться.

..bw



Отредактировано (Сен. 30, 2008 12:52:09)

Офлайн

#5 Сен. 30, 2008 12:54:47

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python/C API

Спасибо



Офлайн

#6 Сен. 30, 2008 14:18:22

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python/C API

Все правильно написали.
Если есть готовая библиотека с простым C API - ctypes.
Нужно чуть больше - pyrex
Требуется приличный C++ “с классами” - boost.python

SWIG не рекомендую - гадость, ИМХО
Писать на Python C API тоже не рекомендую. Читать - нужно уметь. Писать - слишком много и сложно.



Офлайн

#7 Сен. 30, 2008 14:46:59

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Python/C API

На SWIG, если не ошибаюсь (сейчас лень смотреть) сделаны PyOpenGL, wxPython и прочие порты.
Знать Python/C все же нужно, если браться за Pyrex/Cython, то этот API тебе понадобится (с очень большой вероятностью), пусть по мелочам, но ориентироваться и понимать основу Python/C необходимо.

..bw



Офлайн

#8 Сен. 30, 2008 14:48:33

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python/C API

Python/C -ещё б доки на русском найти, а то переводить самому нет времени



Офлайн

#9 Сен. 30, 2008 15:37:22

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Python/C API

А чего там переводить. Уроков нет, только справочник. Самая большая проблема - это путаница в учете ссылок.

..bw



Офлайн

#10 Сен. 30, 2008 16:25:39

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python/C API

Третий PyOpenGL переписан на ctypes.
Про использование SWIG в wxPython цензурными словами отзываться сложно. Муть редкостная. Ребят оправдывает только почтенный возраст проекта - тогда просто не было достойных альтернатив.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version