Путевые заметки в процессе познания Python и PyQt/PySide.
Помни - только тег CODE не портит код добавлением пробела в начало пустой строки.
Помни - только тег CODE не портит код добавлением пробела в начало пустой строки.
К вопросу определения разрядности Python и Windows
Запись от iamvic размещена 09.12.2020 в 14:02
Чтоб самому не забыть и не потерять, положу-ка это в блог. В некоторых случаях определения разрядности Python недостаточно для принятия решения без выяснения разрядности Windows, на которой он работает. 32-битный Python на 64-битной Windows - не редкость. И вроде бы решения известны, но вот не чувствовал я в себе уверенности, применяя их. Хотя в VirtualBox всё выглядело хорошо, но возможности проверить на реальном железе не было. А тут как раз и подвернулась такая возможность. На подходящем железе c Intel Core 2 Duo сначала была развёрнута Win7(32bit), затем - Win7(64bit). Ну и Python 3.8.6 (32bit/64bit). Из надёрганного в Интернете по этой теме был слеплен скриптик для сбора данных. win_check.py:
py32.cmd: Код:
@ECHO OFF SETLOCAL SET PATH=C:\Program Files (x86)\Python38-32\Scripts\;C:\Program Files (x86)\Python38-32\;%PATH% python.exe %* ENDLOCAL Код:
@ECHO OFF SETLOCAL SET PATH=C:\Program Files\Python38\Scripts\;C:\Program Files\Python38\;%PATH% python.exe %* ENDLOCAL Windows 7 (32bit), Python 3.8.6 (32bit): Код:
C:\Tools>win_check.py ctypes.sizeof(ctypes.c_void_p) * 8 = 32 os.name = nt platform.architecture() = ('32bit', 'WindowsPE') platform.machine() = x86 platform.processor() = x86 Family 6 Model 15 Stepping 11, GenuineIntel platform.uname() = uname_result(system='Windows', node='usr-win32', release='7', version='6.1.7601', machine='x86', processor='x86 Family 6 Model 15 Stepping 11, GenuineIntel') platform.win32_ver() = ('7', '6.1.7601', 'SP1', 'Multiprocessor Free') platform.win32_edition() = Professional struct.calcsize("P") * 8 = 32 hex(sys.maxsize) = 0x7fffffff (sys.maxsize > 0x100000000) is False sys.platform = win32 sys.version() = 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:37:30) [MSC v.1927 32 bit (Intel)] sys.winver = 3.8-32 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node is exist? True Код:
C:\Tools>py32 win_check.py ctypes.sizeof(ctypes.c_void_p) * 8 = 32 os.name = nt platform.architecture() = ('32bit', 'WindowsPE') platform.machine() = AMD64 platform.processor() = Intel64 Family 6 Model 15 Stepping 11, GenuineIntel platform.uname() = uname_result(system='Windows', node='usr-win64', release='7', version='6.1.7601', machine='AMD64', processor='Intel64 Family 6 Model 15 Stepping 11, GenuineIntel') platform.win32_ver() = ('7', '6.1.7601', 'SP1', 'Multiprocessor Free') platform.win32_edition() = Professional struct.calcsize("P") * 8 = 32 hex(sys.maxsize) = 0x7fffffff (sys.maxsize > 0x100000000) is False sys.platform = win32 sys.version() = 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:37:30) [MSC v.1927 32 bit (Intel)] sys.winver = 3.8-32 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node is exist? True Код:
C:\Tools>py64 win_check.py ctypes.sizeof(ctypes.c_void_p) * 8 = 64 os.name = nt platform.architecture() = ('64bit', 'WindowsPE') platform.machine() = AMD64 platform.processor() = Intel64 Family 6 Model 15 Stepping 11, GenuineIntel platform.uname() = uname_result(system='Windows', node='usr-win64', release='7', version='6.1.7601', machine='AMD64', processor='Intel64 Family 6 Model 15 Stepping 11, GenuineIntel') platform.win32_ver() = ('7', '6.1.7601', 'SP1', 'Multiprocessor Free') platform.win32_edition() = Professional struct.calcsize("P") * 8 = 64 hex(sys.maxsize) = 0x7fffffffffffffff (sys.maxsize > 0x100000000) is True sys.platform = win32 sys.version() = 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] sys.winver = 3.8 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node is exist? True напрашивается соблюдение таких необходимых и достаточных условий:
|
Всего комментариев 2
Комментарии