Python: Check whether Python shell is executing in 32bit or 64bit mode on OS
Write a Python program to determine if a Python shell is executing in 32bit or 64bit mode on OS.
Sample Solution-1:
Python Code:
Explanation:
The said Python code imports the «struct» module, which converts between Python values and C structs represented as Python bytes objects.
The struct.calcsize() function is used to determine the size of a C data type, in bytes. In this case, the argument passed to the function is «P», which represents the C char * data type.
The value returned by struct.calcsize(«P») is then multiplied by 8, which is used to convert the size from bytes to bits. This is because the size of a pointer is typically represented in bits, rather than bytes.
Finally, the result is printed to the console.
Sample Solution-2:
Python Code:
Explanation:
The said Python code imports two modules platform and struct.
The «platform» module provides an access to underlying platform’s identifying data. Specific platforms listed alphabetically, with Linux included in the Unix section.
The «platform.architecture()» function returns a tuple (bits, linkage) which contain information about the bit architecture and the linkage format used for the executable. Both values are returned as strings.
This «struct» module converts between Python values and C structs represented as Python bytes objects. The «struct.calcsize» returns the size of the struct (and hence of the bytes object produced by pack(format, . )) corresponding to the format string format.
The struct.calcsize(«P») function is used to determine the size of a C data type, in bytes. In this case, the argument passed to the function is «P», which represents the C char * data type.
The value returned by struct.calcsize(«P») is then multiplied by 8, which is used to convert the size from bytes to bits. This is because the size of a pointer is typically represented in bits, rather than bytes.
Then both the values are printed to the console, first the architecture of the system and then the size of pointer in bits.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource’s quiz.
Follow us on Facebook and Twitter for latest update.
Python: Tips of the Day
itertools.permutations() function generates permutations:
- Weekly Trends
We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook
Python. Как узнать имя и разрядность дистрибутива?
Здесь, правда, только информация о ядре и разрядности. Узнать дистр вряд ли можно из самой программы. Да и не нужно это.
А зачем тебе это вообще надо?
пока просто ковыряюсь, изучаю..
СПАСИБО, добрый человек! 🙂
это было так заразительно что я ввел все эти команды в интерпретаторе питона в своей убунте ))) всё работает, забавно
думаю питон учить, не знаю, мне кажется в питоне есть что-то очень няшное.
поэтому и изучаю его) только думаю вот писать на нём сайт или по старинке на пыхе
Какую версию Python я установил?
Мне нужно запустить Python script на сервере Windows. Как я могу узнать, какая версия Python у меня есть, и действительно ли это имеет значение? Я думал обновить до последней версии Python.
20 ответов
—version также может работать (введен в версии 2.5)
в среде IDE Python просто скопируйте и вставьте следующий код и запустите его (версия появится в области вывода)
В командной строке введите:
Когда я открываю Python (command line) , первое, что он мне говорит, это версия.
Хотя вопрос: «Какую версию я использую?», это может быть не все, что вам нужно знать. У вас могут быть установлены другие версии, и это может вызвать проблемы, особенно при установке дополнительных модулей. Это мой грубо-готовый подход к выяснению, какие версии установлены:
Как определить, выполняется ли моя оболочка python в 32-битном или 64-битном режиме на OS X?
Мне нужен способ узнать, в каком режиме находится оболочка изнутри оболочки.
Я пробовал смотреть на платформа модуль, но, кажется, только рассказать вам о «о битовой архитектуре и формате связи, используемом для исполняемого файла»: двоичный файл скомпилирован как 64bit, хотя (я работаю на OS X 10.6), поэтому, похоже, всегда сообщает 64bit, хотя я использую методы описано здесь для принудительного 32-битного режима).
13 ответов
обновление: Один из способов-посмотреть на sys.maxsize как документально здесь:
sys.maxsize был представлен в Python 2.6. Если вам нужен тест для более старых систем, Этот немного более сложный тест должен работать на всех версиях Python 2 и 3:
кстати, у вас может возникнуть соблазн использовать platform.architecture() для этого. К сожалению, его результаты не всегда достоверны,особенно в случае универсальных двоичных файлов OS X.
при запуске интерпретатора Python в терминале / командной строке вы также можете увидеть строку типа:
Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32
здесь [MSC v.1500 64 bit (AMD64)] означает 64-битный Python. Работает для моей конкретной установки.
в основном вариант ответа Мэтью Маршалла (со структурой из std.библиотека):
попробуйте использовать ctypes, чтобы получить размер указателя void:
это будет 4 для 32 бит или 8 для 64 бит.
открыть консоль python:
он должен отображать «64bit» или «32bit» в соответствии с вашей платформой.
для непрограммного решения посмотрите в мониторе активности. Он перечисляет архитектуру 64-разрядных процессов как » Intel (64-bit)».
в моей системе Centos Linux я сделал следующее:
1) запустил интерпретатор Python (я использую 2.6.6)
2) выполнить следующий код:
Примечание.: На Mac OS X (и, возможно, других платформах) исполняемые файлы могут быть универсальными файлами, содержащими несколько архитектур.
чтобы получить «64-битность» текущего интерпретатора, он более надежен для запроса sys.атрибут значение maxsize:
struct.calcsize(«P») возвращает размер байтов, необходимых для хранения одного указателя. В 32-разрядной системе он вернет 4 байта. В 64-разрядной системе он вернет 8 байт.
таким образом, следующее вернется 32 Если вы используете 32-битный python и 64 если вы используете 64-битный python: