Насколько я знаю, нет действительно надежного способа, кроме как проверить сами исполняемые файлы, чтобы увидеть, какие архитектуры были lipo
объединены, другими словами, что делает file
.Хотя distutils.util.get_platform()
, отмеченное в другом месте, вероятно, ближе всего подходит, оно основано на информации о конфигурации во время сборки Python, и используемые критерии менялись между выпусками и даже среди дистрибутивов того же выпуска.построил Python 2.6 на OS X 10.6 с 4-сторонней универсальной опцией (ppc
, ppc64
, i386
, x86_64
), get_platform()
должен сообщить macosx-10.6-universal
.Тем не менее, поддерживаемый Apple Python 2.6 в OS X 10.6 сообщает об одной и той же строке, хотя это только 3-сторонняя сборка (без ppc64
).РЕДАКТИРОВАТЬ: Это может быть не лучший пример, так как, если подумать, вы, вероятно, не могли бы создать вариант ppc64
с 10,6 SDK.Тем не менее, по-прежнему сохраняется точка зрения, что строка платформы слишком зависима от контекста, чтобы быть полностью надежной.Это может быть достаточно надежным для некоторых потребностей.В противном случае лучше всего обратиться к file
или otool
и т. Д.