Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 13, 2015 10:32:06

yunix
Зарегистрирован: 2015-12-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

как работает exe, pyo и dll ?

У меня такой вопрос к знатокам (прям как в ЧТО ГДЕ КОГДА) Есть некая проприетарная СУБД c интерфейсом под Windows, причем интерфейс клиентской части сделан в стиле среды IDE турбо-Си или турбо-Паскаля фирмы Борланд начала 90-х годов. В меню клиента есть пункт типа “Экспорт данных”, который осуществляет выгрузку выборки данных из БД в формате xml, которые (данные) далее могут быть обработаны в другой программе. Известно, что при выборе этого пункта меню запускается питоновский модуль, условно назовем его export.pyo, сжатый zip-архиватором. Из данного “pyo” файла без проблем можно восстановить исходный код в файл “py” и конечно же корректировать как надо ли даже переписать с нуля, потому как даже есть небольшой хелп по api-функциями для работы с данной БД на питоне. Понятно, что экзешник при выборе соответствующего пункта меню производит распаковку pyo файла из zip архива, и запускает его, видимо каким-то образом используя при этом лежащую в том же каталоге, что и zip архив, библиотеку python24.dll. Кроме того, здесь еще лежит библиотека msvcr71, а также ряд файлов с непонятным расширением “pyd” (типа ssl.pyd, socket.pyd, zlib.pyd, imaginmath.pyd и т.п., я так понял, что они тоже относятся к питону).
Вопрос следующий: можно ли как-то заставить напрямую запускать “pyo” или “py” без использования клиентского екзешника? Если можно, то какова последовательность команд на запуск? Нужен ли сам питон-интерпретатор, если есть python24.dll, и как и к чему ее подключить? Надо писать свой екзешник?
Извините, если что-нибудь некорректно написал, прошу разъяснить в чем не прав.

Офлайн

#2 Дек. 13, 2015 11:44:06

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как работает exe, pyo и dll ?

yunix
Вопрос следующий: можно ли как-то заставить напрямую запускать “pyo” или “py” без использования клиентского екзешника? Если можно, то какова последовательность команд на запуск? Нужен ли сам питон-интерпретатор, если есть python24.dll, и как и к чему ее подключить? Надо писать свой екзешник?
Возможно. Используйте дистрибутив питона 2.4 и используйте с ним ваш pyo.

Офлайн

#3 Дек. 13, 2015 11:55:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как работает exe, pyo и dll ?

yunix
Нужен ли сам питон-интерпретатор,
Да. Вашем случае он включен в exe файл.
Shaman
то какова последовательность команд на запуск?
А это надо смотреть в документации.
yunix
Надо писать свой екзешник?
Нет.
yunix
python24.dll, и как и к чему ее подключить?
Не надо ее подключать, интерпретатор сам ее использует без вас.
yunix
с непонятным расширением “pyd”
Это динамические библиотеки к которым приделан интерфейс для взаимодействия с интерпретатором.
yunix
выгрузку выборки данных из БД в формате xml
Выгружать лучше не в xml а в более родных форматах. csv например.
yunix
Есть некая проприетарная СУБД
Так назовите. Что из этого тайну делать. Судя по вашему описанию у вас пропиретарное ПО а драйвер базы данных скорее всего interbase. Очень может быть что к базе напрямую проще обращаться будет.



Офлайн

#4 Дек. 13, 2015 20:39:18

yunix
Зарегистрирован: 2015-12-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

как работает exe, pyo и dll ?

Ок, спс за ответы. Радует, что принципиально возможно использовать интерпретатор без написания какого-либо интерфейса например на Си. СУБД достаточно редкая и специфическая, можно сказать уникальная, если не ошибаюсь, использует самодельный драйвер БД. Может Вам что-то говорит название фирмы НТЦ “Сонар-Плюс” г.Краснодар? Прилагаю файл документации по сонаровским функциям доступным в Питоне.
Кстати, в файлах ‘pyo’ используется импорт модуля SonarDB (упоминание о нем есть в прилагаемом мной файле), исходников которого я нигде не нашел. Может быть он зашит какой-нить экзешник? Или в файлах PYD? Ведь он обязательно понадобится при написании своей программы извлечения данных из этой БД. Как вы думаете, где он может находиться?

Вот нашел ссылку http://www.sonarplus.ru/index.php?page=products&id=legenda
Там внизу страницы даже есть ссылки на скачивание демо-программы, если ее распаковать, то в каталоге LEG_DEMO\DOC\PYTHON\ будет разъяснение по применению питона, а в папке LEG_DEMO\BD\EXE\ лежит файл Ermak4.zip с байт-кодами “pyo”, которые вызываются при выборе некоторых пунктов меню. Конечная цель - на основе исходников файлов “pyo” сделать свою питоновскую прогу, способную извлекать данные из этой БД (причем именно в xml формате), ввод не требуется. Редактировать существующие файлы, лежащие в zip-архиве Ermak4, конечно можно, но очень не удобно, и они не будут работать без запуска exe-шника. А хотелось бы автономную прогу (ну понятно в связке с интерпретатором), производящую похожие действия.

Отредактировано yunix (Дек. 14, 2015 01:21:16)

Прикреплённый файлы:
attachment PyDoc.chm (87,9 KБ)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version