Python: утверждая, что я работаю на POSIX? - PullRequest
2 голосов
/ 09 сентября 2011

Я пишу некоторый специфичный для POSIX код, и хотя я не поддерживаю другие платформы, я хотел бы убедиться, что они получают приятную явную ошибку во время импорта, а не странные ошибки, если они пытались использовать мой код.

Есть ли хороший способ проверить это?Я думаю, я мог бы на import posix и поймать ImportError, но это кажется многословным.

Ответы [ 3 ]

11 голосов
/ 09 сентября 2011

Посмотрите на os.name:

Имя импортированного зависимого от операционной системы модуля.В настоящее время зарегистрированы следующие имена: «posix», «nt», «os2», «ce», «java», «riscos».

Есть также sys.platform и os.uname(), если вам требуется более тонкая детализация.

3 голосов
/ 09 сентября 2011

Вы можете:

def is_posix():
    try:
        import posix
        return True
    except ImportError:
        return False

Вы также можете анализировать sys.platform или os.uname()[0], но я думаю, что более естественно спросить " имеет ли ваша система эту функцию ", а не ", если вы одна из систем .. ., потому что я знаю, что у них есть эта функция сейчас".

0 голосов
/ 09 сентября 2011

вместо импорта posix вы должны импортировать os, так что вы можете иметь подмножество инструкций, доступных пользователю (но не специфичные для posix), тогда вы можете использовать функцию sys.platform для проверкина какой платформе пользователь запускает ваш код, а затем выдает исключение или нет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...