Skip to content

Home Администрирование Кросс - платформенное программирование на языке Python в UNIX
Кросс - платформенное программирование на языке Python в UNIX

Хотя между разными UNIX-подобными операционными системами существуют некоторые значимые различия, но общего в них намного больше. Один из способов примирить различные версии *nix состоит в том, чтобы создавать кросс-платформенные инструменты и библиотеки, которые скрывают различия между операционными системами. Основной способ добиться этого - использовать условные инструкции, которые проверяют тип и версию операционной системы.

Язык Python неизменно следует философии «батарейки входят в комплект поставки» и предоставляет инструменты для решения практически любой проблемы, с которой вы можете столкнуться. Для определения типа платформы, на которой выполняется ваш программный код, существует модуль platform. Давайте поближе познакомимся с основами использования этого модуля.

Самый простой способ познакомиться с возможностями модуля platform - написать сценарий, который будет выводить всю доступную информацию о системе, как показано в примере 8.1.

Пример 8.1. Использование модуля platform для получения информации о системе

Ниже приводится результат работы этого сценария в операционной системе OS X Leopard 10.5.2:

Этот пример позволяет получить представление о том, какого рода информация об операционной системе нам доступна. Следующий шаг на пути к созданию кросс-платформенного программного кода состоит в необходимости создать модуль fingerprint, который будет «брать отпечатки пальцев», определяя, на какой платформе, с каким номером версии он выполняется. В следующем примере мы «взяли отпечатки пальцев» у следующих операционных систем: Mac OS X, Ubuntu, Red Hat/CentOS, FreeBSD и SunOS. Взгляните на пример 8.2.

Пример 8.2. Определение типа операционной системы

Теперь посмотрим, что выводит этот модуль при запуске на различных платформах.

Ubuntu:

Solarls 10 или SunOS:

FreeBSD:

Red Hat:

Хотя в выводе этой команды не содержится ничего особенно интересного, но в действительности она предоставляет нам очень мощный инструмент. Этот простой модуль позволит нам писать кросс-платформенный программный код, так как мы, например, можем определить словарь с типами этих операционных систем и при нахождении соответствия выполнять соответствующий платформозависимый программный код. Одним из примеров получения самой ощутимой выгоды от использования приемов кросс-платформенного программирования могут служить сценарии, используемые для администрирования сети посредством применения ssh с ключами. В этом случае программный код может работать на многих платформах и давать непротиворечивые результаты.

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top