Как проверить, работает ли Python на MC MAC, даже при Розетте?Python

Программы на Python
Anonymous
 Как проверить, работает ли Python на MC MAC, даже при Розетте?

Сообщение Anonymous »

У меня есть код Python 3.10, который запускает процесс, но ему необходимо запустить другой процесс, если он работает на Mac Mac. < /p>
Есть ли способ надежно обнаружить, если вы На MAC M1, даже если процесс Python работает в Rosetta? < /p>
Я попробовал это: < /p>

Код: Выделить всё

print(sys.platform)

# On Intel silicon:
darwin

# On M1 silicon:
darwin

< /code>
Но он всегда печатает "darwin". это: < /p>
print(os.uname())

# On Intel silicon:
posix.uname_result(sysname='Darwin', nodename='XXX', release='21.5.0', version='Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64', machine='x86_64')

# On M1 silicon:
posix.uname_result(sysname='Darwin', nodename='XXX', release='21.4.0', version='Darwin Kernel Version 21.4.0: Fri Mar 18 00:47:26 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T8101', machine='x86_64')
Я предполагаю, что он возвращает machine = 'x86_64' на машине M1, потому что Python работает в розетте? Поле версии действительно отличается:

Код: Выделить всё

# Intel
version='Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64'

# M1
version='Darwin Kernel Version 21.4.0: Fri Mar 18 00:47:26 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T8101'
parsing uname () и ищет «ARM» в поле версии лучший способ проверить на наличие M1 Silicon, если вы работаете под розеттой?

Подробнее здесь: https://stackoverflow.com/questions/728 ... er-rosetta

Вернуться в «Python»