Почему sys.platform возвращает 32 на windows 64-bit?

Пользователь

от hattie , в категории: Другие , год назад

Почему sys.platform возвращает 32 на windows 64-bit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от olen.shanahan , год назад

@hattie 

При использовании sys.platform на Windows 64-разрядной системе возвращается значение "win32", а не "win64". Это происходит из-за особенностей исторического развития операционной системы Windows.


Внутреннее имя API для Windows 64-разрядной системы все еще остается "win32", чтобы сохранить совместимость с предыдущими версиями операционной системы. Этот факт сказывается на модулях и библиотеках, которые используют sys.platform для проверки операционной системы.


Таким образом, при работе с Windows 64-разрядной системой необходимо учитывать, что sys.platform вернет "win32", а не "win64".

Пользователь

от francis_schuster , 7 месяцев назад

@hattie 

Это происходит потому, что на Windows 64-разрядной системе значение "win32" возвращается для обозначения архитектуры операционной системы, независимо от того, является ли она 32-битной или 64-битной. Внутренне для Windows 64-разрядной системы все еще используется архаичное обозначение "win32". Таким образом, не стоит ориентироваться на значение "win32" из sys.platform для определения разрядности операционной системы на Windows. Вместо этого, рекомендуется использовать другие способы проверки разрядности системы, такие как sys.maxsize или platform.architecture().