Найти - Пользователи
Полная версия: как работает exe, pyo и dll ?
Начало » Python для новичков » как работает exe, pyo и dll ?
1
yunix
У меня такой вопрос к знатокам (прям как в ЧТО ГДЕ КОГДА) Есть некая проприетарная СУБД 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, и как и к чему ее подключить? Надо писать свой екзешник?
Извините, если что-нибудь некорректно написал, прошу разъяснить в чем не прав.
Shaman
yunix
Вопрос следующий: можно ли как-то заставить напрямую запускать “pyo” или “py” без использования клиентского екзешника? Если можно, то какова последовательность команд на запуск? Нужен ли сам питон-интерпретатор, если есть python24.dll, и как и к чему ее подключить? Надо писать свой екзешник?
Возможно. Используйте дистрибутив питона 2.4 и используйте с ним ваш pyo.
doza_and
yunix
Нужен ли сам питон-интерпретатор,
Да. Вашем случае он включен в exe файл.
Shaman
то какова последовательность команд на запуск?
А это надо смотреть в документации.
yunix
Надо писать свой екзешник?
Нет.
yunix
python24.dll, и как и к чему ее подключить?
Не надо ее подключать, интерпретатор сам ее использует без вас.
yunix
с непонятным расширением “pyd”
Это динамические библиотеки к которым приделан интерфейс для взаимодействия с интерпретатором.
yunix
выгрузку выборки данных из БД в формате xml
Выгружать лучше не в xml а в более родных форматах. csv например.
yunix
Есть некая проприетарная СУБД
Так назовите. Что из этого тайну делать. Судя по вашему описанию у вас пропиретарное ПО а драйвер базы данных скорее всего interbase. Очень может быть что к базе напрямую проще обращаться будет.
yunix
Ок, спс за ответы. Радует, что принципиально возможно использовать интерпретатор без написания какого-либо интерфейса например на Си. СУБД достаточно редкая и специфическая, можно сказать уникальная, если не ошибаюсь, использует самодельный драйвер БД. Может Вам что-то говорит название фирмы НТЦ “Сонар-Плюс” г.Краснодар? Прилагаю файл документации по сонаровским функциям доступным в Питоне.
Кстати, в файлах ‘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-шника. А хотелось бы автономную прогу (ну понятно в связке с интерпретатором), производящую похожие действия.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB