Форум сайта python.su
В общем, заинтересовался я разработкой сишных модулей для питона. Во-первых, что про них почитать, кроме http://docs.python.org/release/2.7.2/extending/extending.html ? Во-вторых, будут ли такие эксты компилироваться и под винду, и под никсы? А в-третьих, хотелось бы обсудить случаи использования.
Из того, что интересует - есть ли смысл организовывать какие-либо сетевые вещи (например, работу с протоколами на низком уровне) в виде сишных либ? Реализовывать структуры данных - деревья, графы?
Товарищ Андрей Светлов, я знаю, что связка Python/C++ - ваш конек. Хочется поболтать на тему.
Офлайн
Enchantner1 Сходный вопрос - с++ кросс платформенный или нет?
будут ли такие эксты компилироваться и под винду, и под никсы
Enchantnerи кросплатформенность - вещи часто трудносовместимые.
работу с протоколами на низком уровне
Отредактировано (Авг. 16, 2011 22:44:39)
Офлайн
doza_andНу, это понятно. Я просто в основном пробовал писать именно с использованием Boost::Python под никсами, но на винде у меня чего-то не заладилось. А хочется мутить нормальные pip-пакеты для установки на любую систему, где есть сишный компилятор.
1 Сходный вопрос - с++ кросс платформенный или нет?
Ответ - зависит от того, что вы в этом c++ напишете.
doza_andНу, на уровне питона да, это практически незаметно. На уровне сей различие не такое большое, чтобы это было большой сложностью. Ну другие заголовки, но все основные синтаксисы (создание сокета, отправка данных) - одни и те же.
вещи часто трудносовместимые
Отредактировано (Авг. 17, 2011 00:03:54)
Офлайн
EnchantnerПод виндами проблемы. Можно ориентироваться на MSVC, но у них быстро меняется среда. у меня базовый сейчас MSVC10 и инсталляторы не могут по умолчанию им компилировать (рассчитаны на 8) пришлось править алгоритмы поиска. При этом нет никакой уверенности что микрософт не учудит опять что-то при выпуске новой версии. Явно прослеживается тенденция - ставка на C# F#… А с++ по остаточному принципу. Ядумаю что теперь порядок поиска компиляторов под виндами должен быть MingW, gcc из cygwin А потом уж MSVC
нормальные pip-пакеты для установки на любую систему,
EnchantnerА как вы думаете поступать с атакой андроидов? :)
на любую систему, где есть сишный компилятор
Офлайн
Если вам «исключительно для ускорения» — берите Cython. Делайте всё на Питоне. Покрывайте тестами. Когда профайлер покажет что интересное — переводите критическую часть на Cython. Тесты должны одинаково хорошо работать как на Python так и на Cython реализации. Потом придётся поддерживать обе версии. (это не трудно)
Офлайн
Андрей Светлов
Мне не столько для ускорения боттлнеков, сколько для исследования возможности написания программ на обоих языках одновременно. То есть это не обязательно будет Python-программа со вставками на C, но может быть, скажем, C-программа с API и логикой на питоне (как это сделано в GIMP, например).
doza_andНу, в андроиде есть SL4A, а в нем можно импортировать свои системные бандлы. При наличии cишного NDK теоретически возможность скомпилить свой такой бандл никуда не делась.
А как вы думаете поступать с атакой андроидов?
doza_andСогласен, но как быть, скажем, с инсталляторами Python-программ? Или в них уже включен, например, скомпилированный одним из GNU-компиляторов код, который просто в бинарном виде копируется, куда надо?
Ядумаю что теперь порядок поиска компиляторов под виндами должен быть MingW, gcc из cygwin А потом уж MSVC
Отредактировано (Авг. 17, 2011 08:47:43)
Офлайн
До NDK еще дожить надо.
EnchantnerНаверно как и с самим питоном. - поставлять и исходники и компиллированные версии. Я бы ратовал только за исходники, но многие вещи сам не могу собрать из исходников. :)
но как быть, скажем, с инсталляторами Python-программ?
Офлайн
doza_and
ну, кто-то же как-то собирает эти пакеты: http://www.lfd.uci.edu/~gohlke/pythonlibs/ :) тот же gevent под виндой из сорцов собрать нереально, потому что надо компилить libevent и т. д.
Офлайн
Для изучения — читайте все подряд. Для работы — определитесь сначала с техусловиями.
Офлайн