Найти - Пользователи
Полная версия: Автоматическое определение ОС.
Начало » Python для новичков » Автоматическое определение ОС.
1 2
Vader
Андрей Светлов
за информацию о 2.7/3.2 спасибо, не знал.
Только какое-то немного сомнительное решение.
Рассмотрим такую ситуацию: мне нужно подключать разные dll в зависимости от используемой архитектуры.
В старом подходе все было ясно. Теперь же прийдется делать какую-то другую проверку. Ведь если у меня 32 битный питон, то уже не столь важно, какая разрядность у самой винды - будут работать только 32 битные расширения и точка.
Сорри, я немного ошибся в предыдущем сообщении. Изменили platform.machine, а не platform.architecture. platform.architecture по-прежнему будет возвращать разрядность интерпретатора. Вобщем, изменение вполне оправданное.

Андрей Светлов
К переменным окружения отношусь несколько настороженно. При запуске дочернего процесса они, конечно, наследуются по умолчанию. Но вместе с тем запускающий процесс может установить их как душа пожелает или вообще сбросить. Получится, что ваш код имеет шанс неправильно отработать только из-за того, что криворукий программист сделал несовсем корректную заускалку. Выяснение проблемы может быть непростым, а все что вы услышите будет звучать как “программа ххх не работает, если я вызываю ее через subprocess”. Поверьте, я такое не раз видел.
Тут вы правы, переменные окружения, порой, могут принести немало сюрпризов. Но, если правильно подойти к их использованию, то проблем можно избежать. Конкретно в этом случае можно сделать вот так:
import os, platform

if os.environ['PROCESSOR_ARCHITEW6432'] and platform.architecture()[0] == "32bit":
print "WOW64"
elif platform.architecture()[0] == "64bit":
print "AMD64"
else:
print "x86"
Точно не ошибетесь :)
Андрей Светлов
Vader
Сорри, я немного ошибся в предыдущем сообщении. Изменили platform.machine, а не platform.architecture. platform.architecture по-прежнему будет возвращать разрядность интерпретатора. Вобщем, изменение вполне оправданное.
да, так - лучше
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