Пришел сюда в поисках правильного определения, работает ли на 64-битных окнах, собрав все вышеперечисленное в нечто более сжатое.
Ниже вы найдете функцию для проверки работы в 64-битных окнах, функцию для получения папки 32-битных программных файлов и функцию для получения папки 64-битных программных файлов; все независимо от того, работает ли 32-битный или 64-битный питон. При работе с 32-битным питоном большинство вещей сообщают о 32-битном при работе на 64-битном, даже os.environ['PROGRAMFILES']
.
import os
def Is64Windows():
return 'PROGRAMFILES(X86)' in os.environ
def GetProgramFiles32():
if Is64Windows():
return os.environ['PROGRAMFILES(X86)']
else:
return os.environ['PROGRAMFILES']
def GetProgramFiles64():
if Is64Windows():
return os.environ['PROGRAMW6432']
else:
return None
Примечание : Да, это немного хакерски. Все остальные методы, которые «должны просто работать», не работают при запуске 32-битного Python на 64-битной Windows (по крайней мере для различных версий 2.x и 3.x, которые я пробовал).
Редактирование:
2011-09-07 - Добавлено примечание о том, почему только этот хакерский метод работает правильно.