OberonCore
https://forum.oberoncore.ru/

Связывание с питоном
https://forum.oberoncore.ru/viewtopic.php?f=1&t=6379
Страница 1 из 1

Автор:  Info21 [ Четверг, 11 Апрель, 2019 08:27 ]
Заголовок сообщения:  Связывание с питоном

Мне тут молчел, связанный с торговлей на типа бирже, категорически поведал, что большие конторы никогда не пользуют питон. Но маленькие -- вроде той, где он подкармливается -- сидят именно на нём, и выбор у них невелик: у них есть доступ к библиотекам либо на питоне, либо на джаве. Некий сложный алгоритм он делает на ББ, но нужно связываться с библиотеками на питоне, и это получается с переменным успехом.

Это всё к тому, что вопрос достаточно серьёзный.

А поэтому хочется максимально убрать порог -- дать набор даже кажущихся спецам тривиальными примеров и свидетельств (с версиями и что там ещё, заранее Невообразимое).
Предлагаю выдавать сюда кто что полезного знает или может припомнить.

Наличие сотни простых, на разные лады утверждений "а мы делали" + детали, передающие аромат реальности, сильно поможет target-аудитории.

Автор:  Пётр Кушнир [ Четверг, 11 Апрель, 2019 09:15 ]
Заголовок сообщения:  Re: Связывание с питоном

Есть куча инструментов для IPC, опенсорсных и самописные даже были, не обязательно "всё связывать библиотеками как в Си, как правильно, как надо, надувая щёки". В конце концов есть сокеты и прочие REST API.

В конце конца концов есть широкоизвестный в узких кругах проект MultiBlackboxPlatform который позволял крутить ББ в dll https://bitbucket.org/petryxa/mbp/src/default/ где есть файлик с говорящим названием Docu/How-To make mbpslave.dll.odc

Автор:  Rifat [ Четверг, 11 Апрель, 2019 09:48 ]
Заголовок сообщения:  Re: Связывание с питоном

Я немножко работал в фирме занимающейся созданием платформы для Форекса и немного знаю тему изнутри. Самая большая озабоченность у тех, кто торгует - это чтобы быстро работало. Так как цена меняется по несколько раз в секунду и если есть выгодная возможность продать или купить что-то, то надо быстрее это делать, так как уже через секунду цена может быть невыгодной. Исходя из этого надо предлагать такое решение, которое будет работать как можно быстрее. В этом плане, как мне кажется, web-решения, такие как, SOAP и прочие WEB API будут помедленнее, чем непосредственный вызов dll. Поэтому лично я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.

Автор:  Пётр Кушнир [ Четверг, 11 Апрель, 2019 15:00 ]
Заголовок сообщения:  Re: Связывание с питоном

Обычный http-сервер сегодня тащит до тысяч запросов в секунду, так что тут спорно. Даже O3 из коробки на тестовых запросах тянул. Плюс маленькая контора вряд ли будет заниматься реальным HFT. DLL тянет за собой мрачное наследие Си вместе с access violation и прочим.

Автор:  Info21 [ Пятница, 12 Апрель, 2019 06:43 ]
Заголовок сообщения:  Re: Связывание с питоном

Rifat писал(а):
я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.
Вы все начинаете советы давать, не зная конкретной ситуации.

Большие игроки (микрофинансы и проч.) полностью контролируют свой софт и в условиях миллисекунд с питоном никогда (что естественно -- и что мне категорически подтвердили) дела не имеют.

Вопрос был в другом: питона слишком много кругом -- и слишком много самоучек.

И надо дать примеров, конкретных и разных.

Хорошо уже просто сказать "я успешно соединял ББ с питоном в такой-то области приложений". Маленький проект или большой -- не важно. Мы знаем, сколько всего разного бывает.

Автор:  Пётр Кушнир [ Пятница, 12 Апрель, 2019 09:46 ]
Заголовок сообщения:  Re: Связывание с питоном

Мы соединяли ББ с php через REST на O3+Json под Линуксом (хотя с нашими наработками это было вообще неважно). Вместо php можно ставить питон, от этого http не изменится.

Автор:  Info21 [ Пятница, 12 Апрель, 2019 10:32 ]
Заголовок сообщения:  Re: Связывание с питоном

Вот. Спасибо.

Автор:  prospero78 [ Пятница, 26 Апрель, 2019 08:29 ]
Заголовок сообщения:  Re: Связывание с питоном

Я соединял с питоном ББ и DLL на Обероне (вариант Антона Кротова).
Конечно, при этом у DLL есть масса ограничений (в том числе отваливается контроль при межмодульном взаимодействии).
Взаимодействие в питоне организуется через модуль ctypes.
В документации к модулю всё описано, но всё же примерный порядок действий (примерно):
1. import ctypes
2. <proc>=ctypes.CDLL.Load("myDLL.dll")
3. <proc>.MyProc(ctypes.int(a), ctypes.float32(b), .... )
Есть смысл использовать если только это тяжёлые расчёты -- затраты на вызов и конвертацию слишком большие.
Есть конечно, более питоничное решение ускорения расчётов, но про него я рассказывать не буду.
Как сказал один товарищ в чате Телеграмм -- оберонщики все лживые вплоть до последнего))

Автор:  Info21 [ Пятница, 26 Апрель, 2019 14:34 ]
Заголовок сообщения:  Re: Связывание с питоном

Большое спасибо.

Автор:  arlean1 [ Суббота, 27 Апрель, 2019 00:39 ]
Заголовок сообщения:  Re: Связывание с питоном

Rifat писал(а):
Я немножко работал в фирме занимающейся созданием платформы для Форекса и немного знаю тему изнутри. Самая большая озабоченность у тех, кто торгует - это чтобы быстро работало. Так как цена меняется по несколько раз в секунду и если есть выгодная возможность продать или купить что-то, то надо быстрее это делать, так как уже через секунду цена может быть невыгодной.

Питон интересен тем, что через него удобно, например, с Excel работать.
Rifat писал(а):
Поэтому лично я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.

Можно ведь и наоборот, вызывать процедуры из Питона и ещё использовать его библиотеки. В Питоне есть ядро в виде dll - python3y.dll - здесь 3y - номер версии - Типа Python36.dll, которое может быть доступна из ВВ - точно так же как работаете с WinApi.
viewtopic.php?
https://forum.oberoncore.ru/viewtopic.php?f=2&t=3162&p=57799&hilit=%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82#p57799

Вообще, выбор интересных приложений для интеграции с ВВ стоит обсудить.
Для вашей задачи с Форексом и для Всех тоже может быть интересно новое приложение -> Сейчас появился ClickHouse от Яндекса - очень быстрая для вычислительных и аналитических задач отказоустойчивая и "супер"масштабируемая база данных - годится как для локального применения, так и для создания устойчивых кластеров с репликацией данных. Интеграция возможна через HTTP - это протокол по умолчанию, через который можно делать все: запрашивать данные, загружать данные - SQL подобный интерфейс запросов.
open source, исходники прилагаются.

Хотя и реклама, но ограничения прописаны: https://habr.com/ru/post/322724/

Tutorial: https://clickhouse.yandex/tutorial.html

Автор:  Ярослав Романченко [ Суббота, 27 Апрель, 2019 07:21 ]
Заголовок сообщения:  Re: Связывание с питоном

arlean1 писал(а):
Питон интересен тем, что через него удобно, например, с Excel работать.
С Excel можно работать практически на чём угодно. Можно даже подключаться к Excel файлам как базам данных через ADO, листы документа при этом выступают в роли таблиц базы.
Получается простейшая база данных с таблицами, в которых данные удобно править руками.

Автор:  Info21 [ Суббота, 27 Апрель, 2019 08:48 ]
Заголовок сообщения:  Re: Связывание с питоном

Сколько всяких забавностей есть у публики ))

Автор:  Борис Рюмшин [ Суббота, 27 Апрель, 2019 11:06 ]
Заголовок сообщения:  Re: Связывание с питоном

Ярослав Романченко писал(а):
С Excel можно работать практически на чём угодно.

Если это только на линкусовом сервере делать не надо.

Автор:  arlean1 [ Пятница, 20 Сентябрь, 2019 09:15 ]
Заголовок сообщения:  Re: Связывание с питоном

По поводу математики в Питоне - возможно, что многое используется из Intel® Math Kernel Library
Разработчики Питона получили лицензию раньше других, а сейчас эта библиотека доступна всем.

Она включает в себя возможности Deep Neural Network - глубокое структурированное обучение или иерархическое обучение, основанное на искусственных нейронных сетях.

И вы даже можете распространять её со своими программами, с указанием на разработчика этой библиотеки

License FAQ - https://software.intel.com/en-us/mkl/license-faq

Автор:  prospero78 [ Четверг, 03 Октябрь, 2019 13:26 ]
Заголовок сообщения:  Re: Связывание с питоном

К питону вообще прикрутили всё что можно и не нужно (ну, лично у меня такое впечатление).
Только правда в том, что коллега справа от меня страдает с питоном уже год -- то данные кривые прилетят, то либа обновится, то интерпретатор под Windows работает не так, как под Linux.
Хоть golang (я на нём работаю) -- испорченный Оберон, но в отличии от питона -- у меня хоть типизация для начала есть. Знаю, что как я работаю -- это далеко не идиоматично для golang (тут кое-кто меня бы упрекнул "ты пишешь на нём, как на Обероне", и что бы я в свою очередь не без некоторого удовольствия подтвердил). Но всё-таки питон -- это тупиковый путь. Пока был относительно прост -- ещё куда ни шло. Но кривая сложности на нём хоть и начинается гладко, уже в середине весьма круто смотрит вверх. А в конце -- это вообще набор ломанных пиков начиная от нулевого уровня.
Да, питон благодаря всяким штукам может быть быстрым (в 95% случаев -- таки нет). Но его внутренняя сложность...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/