Как определить версию windows python

First of all, I don’t think this question is a duplicate of
Detect 64bit OS (windows) in Python
because imho it has not been thoroughly answered.

The only approaching answer is:

Use sys.getwindowsversion() or the existence of PROGRAMFILES(X86) (if 'PROGRAMFILES(X86)' in os.environ)

But:

  • Does the windows environment variable PROGRAMFILES(X86) reliable? I fear that anyone can create it, even if it’s not present on the system.
  • How to use sys.getwindowsversion() in order to get the architecture?

Regarding sys.getwindowsversion():
The link http://docs.python.org/library/sys.html#sys.getwindowsversion
leads us to http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx
but I don’t see anything related to the architecture (32bit/64bit).
Moreover, the platform element in the returned tuple seems to be independent of the architecture.

One last note: I’m looking for a solution using both python 2.5 and a windows version starting at Windows XP

Thanks!

Edit:
The relevant info is available here
http://msdn.microsoft.com/en-us/library/ms724340%28v=VS.85%29.aspx
but how can I get this with python?

Edit2:
On a 64bit windows, with a 32bit python interpreter:

  • os.environ[«PROCESSOR_ARCHITECTURE»] returns
    • ‘x86’
  • platform.architecture() returns
    • (’32bit’, ‘WindowsPE’)

Community's user avatar

asked May 4, 2010 at 10:05

Thorfin's user avatar

5

I think the platform module is really the best way to get this info.

  >>> import platform
  >>> platform.platform()
  'Windows-7-6.1.7601-SP1'
  platform.processor()
  'Intel64 Family 6 Model 42 Stepping 7, GenuineIntel'

I don’t see where to get a firm answer on 32/64 bit windows from here, so I suggest this:

  try:
      os.environ["PROGRAMFILES(X86)"]
      bits = 64
  except:
      bits = 32
  print "Win{0}".format(bits)

or, if you need to know which flavor of Python you are running (as you can run x32 python under x64 Windows):

x32 python x64 windows:
>>> platform.architecture()
('32bit', 'WindowsPE')
>>> sys.version
'2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]'

x64 python x64 windows:
>>> platform.architecture()
('64bit', 'WindowsPE')
>>> sys.version
'2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)]'

answered May 20, 2013 at 20:31

Curtis Price's user avatar

2

These variables show your current runtime status on windows:


@rem Test environment using this table:
@rem
@rem Environment Variable       32bit Native    64bit Native    WOW64
@rem PROCESSOR_ARCHITECTURE     x86             AMD64           x86
@rem PROCESSOR_ARCHITEW6432     undefined       undefined       AMD64
@rem

answered May 5, 2010 at 5:14

Luke's user avatar

LukeLuke

1484 bronze badges

1

1 Another option (poll WMI for OsArchitecture):

If you install pywin32 and the python wmi module on top you should be able to do (but only from Windows Vista and up!):

import wmi
c = wmi.WMI()
for os in c.Win32_OperatingSystem():
    print os.osarchitecture

2 Alternatively you could also use the _winreg module to check for the existence of SOFTWARE\Wow6432Node under HKEY_LOCAL_MACHINE (this is supposedly only there on 64 bit- OS versions) (no external dependencies).

answered May 4, 2010 at 11:38

ChristopheD's user avatar

ChristopheDChristopheD

113k29 gold badges165 silver badges181 bronze badges

3

i hope this can solve the problem
i tried it on my windows 8.1 64 bit and returns the value AMD64 for me

import _winreg
def get_registry_value(key, subkey, value):

  key = getattr(_winreg, key)
  handle = _winreg.OpenKey(key, subkey )
  (value, type) = _winreg.QueryValueEx(handle, value)
  return value

windowsbit = get_registry_value(
    "HKEY_LOCAL_MACHINE",
    "SYSTEM\\CurrentControlSet\Control\\Session Manager\\Environment",
    "PROCESSOR_ARCHITECTURE")
print windowsbit

just run this code
if you are working on 64 bit windows machine this will print AMD64

or if you are working on 32 bit it will print AMD32

i hope this code can help to solve this problem fully

answered May 22, 2014 at 23:04

rishabhr0y's user avatar

rishabhr0yrishabhr0y

8381 gold badge9 silver badges14 bronze badges

1

Here’s a nice Python command one-liner.

>python -c "import platform as p; print(p.platform());print(p.processor())"
Windows-10-10.0.17134-SP0
Intel64 Family 6 Model 61 Stepping 4, GenuineIntel

>

answered May 30, 2018 at 17:20

Love and peace - Joe Codeswell's user avatar

when i type into the Console(CMD) «winver» i will get my windows version (The four numbers left of the build number, example: 1803,1903,1909,2004,20H2)
But how can i get my windows version in python?
i already tried:

import os
os.system("winver")
input()

But then it will open a new window like in the cmd, but i just want to print the winver without the rest, therefore i did this:

import os
os.system("Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId")
input()

But here is the problem that a string is in a string.
«HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion»

How can i fix that? Please help!

asked Mar 9, 2021 at 21:10

Temal's user avatar

1

you can use platform module

import platform

print(platform.platform())
print(platform.system())
print(platform.release())
print(platform.version())
print(platform.version().split('.')[2]) 
print(platform.machine())

output:

Windows-10-10.0.19041-SP0
Windows
10
10.0.19041
19041
AMD64

answered Mar 9, 2021 at 21:21

just a stranger's user avatar

just a strangerjust a stranger

3101 gold badge4 silver badges13 bronze badges

4

To put a string inside a string without getting sinttax error you should use single quotes.
The code would look like this:

import os
os.system("Reg Query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v ReleaseId")
input()

answered Mar 9, 2021 at 21:21

Tomás Gomez Pizarro's user avatar

1

You can make use of the sys library, it has a command just for this.
Python Docs on sys

import sys
version = sys.getwindowsversion()
print(version)
print(version[2]) # You can directly reference the build element by index number
print(version.build) # Or by name

Output:

sys.getwindowsversion(major=10, minor=0, build=19042, platform=2, service_pack='')
19042
19042

answered Mar 9, 2021 at 21:52

jaweb's user avatar

jawebjaweb

211 bronze badge

The only registry entry I was able to find that contains the 20H2 value on my system was

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DisplayVersion

Displayversion is also a REG_SZ value.

Unfortunately I don’t know since which Windows 10 version this entry exists. I found some info that on older Windows 10 installations this key was an optional 32bit DWORD value that could be used to show build info, edition, WinDir path on the desktop.

But this is definitely the location where winver gets the version info from. If you modify the string winver also shows the modified value.

answered Mar 10, 2021 at 8:47

Robert's user avatar

RobertRobert

39.5k17 gold badges101 silver badges152 bronze badges

Если вы занимаетесь программированием на Python и вам необходимо узнать версию операционной системы Windows, на которой выполняется ваш код, у вас есть несколько простых способов сделать это. Независимо от того, решаете ли вы задачу автоматизации системы, проверяете совместимость программного обеспечения или просто хотите получить дополнительную информацию о системе, Python предлагает несколько методов для получения версии Windows.

В этом шаг за шагом гиде мы рассмотрим несколько подходов к определению версии Windows с помощью Python: с использованием модуля platform, использованием системной переменной окружения и реестра Windows. Каждый метод будет подробно объяснен и снабжен необходимым кодом Python, который вы можете использовать для определения версии вашей операционной системы.

Выберите подход, который наиболее удобен для вас, и следуйте шагам в нашем гиде, чтобы быстро и точно определить версию вашей операционной системы Windows и использовать эту информацию в своих проектах на Python.

Содержание

  1. Установка Python
  2. Скачайте Python с официального сайта
  3. Запустите установочный файл
  4. Настройка окружения
  5. 1. Установите Python
  6. 2. Установите пакет pywin32
  7. 3. Настройте среду разработки
  8. 4. Создайте новый проект
  9. 5. Начните кодирование
  10. Установите необходимые зависимости
  11. Настройте переменные среды
  12. Создание скрипта
  13. Откройте редактор Python
  14. Напишите код для получения версии Windows

Установка Python

Для начала работы с Python необходимо установить его на компьютер. Вот шаги, которые нужно выполнить для установки Python:

  1. Перейдите на официальный сайт Python (https://www.python.org/) и скачайте последнюю версию Python для вашей операционной системы.
  2. Запустите загруженный установщик Python.
  3. На первом экране установщика отметьте пункт «Add Python to PATH» (Добавить Python в PATH) и нажмите «Customize installation» (Пользовательская установка), если вы хотите изменить настройки установки. Если вы не планируете менять настройки, просто нажмите «Install Now» (Установить сейчас).
  4. На следующем экране выберите путь установки Python и нажмите «Next» (Далее).
  5. На экране «Optional Features» (Дополнительные функции) можно оставить все по умолчанию и нажать «Next» (Далее).
  6. На экране «Advanced Options» (Дополнительные параметры) можно оставить все по умолчанию и нажать «Install» (Установить).
  7. После установки Python нажмите «Close» (Закрыть).

Теперь Python установлен на вашем компьютере и готов к использованию! Теперь вы можете приступить к созданию программ на Python.

Скачайте Python с официального сайта

1. Перейдите на официальный сайт Python.

2. Нажмите на кнопку «Download» в верхнем меню.

3. Вам будет предложено выбрать версию Python для скачивания. В зависимости от вашей операционной системы выберите соответствующую версию.

4. Вам также будет предложено выбрать установочный пакет. Рекомендуется выбрать установочный пакет, который включает в себя Python и дополнительные библиотеки.

5. Щелкните на выбранный установочный пакет, чтобы начать загрузку.

6. После завершения загрузки, откройте скачанный файл и следуйте инструкциям мастера установки для установки Python на ваш компьютер.

Теперь у вас есть установленная версия Python на вашем компьютере, и вы готовы начать использовать Python для выполнения различных задач, в том числе для определения версии Windows.

Запустите установочный файл

Для того чтобы узнать версию Windows с помощью Python, нужно сначала установить Python на свой компьютер. Вам потребуется установочный файл Python, который можно загрузить с официального сайта Python.

1. Откройте свой любимый браузер и перейдите на официальный сайт Python: https://www.python.org/.

2. Нажмите на кнопку «Downloads» в верхнем меню сайта. Вы попадете на страницу загрузки Python.

3. На странице загрузки вы увидите две версии Python: последнюю стабильную версию и последнюю бета-версию. Также будет указана поддерживаемая архитектура (32-битная или 64-битная). Обычно для большинства пользователей подходит 64-битная версия.

4. Нажмите на ссылку для скачивания установочного файла Python для вашей операционной системы и архитектуры компьютера. Установочный файл обычно имеет расширение .exe.

5. После завершения загрузки установочного файла, найдите его в папке загрузок на вашем компьютере.

6. Щелкните два раза на установочном файле, чтобы запустить процесс установки Python.

7. В появившемся окне выберите опцию «Install Now» и следуйте инструкциям мастера установки.

8. По умолчанию Python будет установлен в папку C:\Python\, но вы можете выбрать другую папку для установки.

9. После завершения установки Python на вашем компьютере, вы можете переходить к следующему шагу — узнать версию Windows с помощью Python.

Настройка окружения

Прежде чем мы начнем, нужно установить несколько пакетов и настроить окружение для работы с Python и Windows. Вот шаги, которые нужно выполнить:

1. Установите Python

Первым шагом является установка Python. Вы можете скачать последнюю версию Python с официального веб-сайта https://www.python.org/downloads/ и следовать инструкциям установщика.

2. Установите пакет pywin32

Для работы с API Windows вам понадобится установить пакет pywin32. Вы можете установить его с помощью pip, выполнив следующую команду:

pip install pywin32

3. Настройте среду разработки

После установки Python и пакета pywin32 вам нужно настроить среду разработки. Вы можете использовать любую среду разработки на ваш выбор, но мы рекомендуем использовать Visual Studio Code (VS Code).

Установите VS Code, если у вас его еще нет, с официального веб-сайта https://code.visualstudio.com/. Затем установите расширение Python, чтобы получить все необходимые возможности для работы с Python в VS Code.

4. Создайте новый проект

После настройки среды разработки откройте VS Code и создайте новый проект для работы с Python.

Мы рекомендуем создать новую папку, в которой будет храниться весь код вашего проекта.

5. Начните кодирование

Теперь, когда ваше окружение готово, вы можете приступить к написанию кода для определения версии Windows с помощью Python.

В следующей части этого руководства мы подробно рассмотрим, как это сделать.

Установите необходимые зависимости

Прежде чем начать работу, убедитесь, что у вас установлен Python на вашем компьютере. Вы можете загрузить его с официального сайта python.org и следовать инструкциям по установке для вашей операционной системы.

После установки Python у вас должен быть доступен его интерпретатор из командной строки. Вы можете проверить это, выполнив следующую команду:

python --version

Кроме того, для работы с версией Windows вам потребуется использовать библиотеку platform. Эта библиотека является частью стандартной библиотеки Python и не требует дополнительной установки. Она предоставляет удобные методы для получения информации о текущей операционной системе.

Для установки дополнительных зависимостей, если они требуются, вы можете использовать менеджер пакетов Python — pip. Проверьте, что у вас установлен pip, выполнив следующую команду:

pip --version

Если pip не установлен, вы можете установить его следующей командой:

python -m ensurepip --upgrade

Теперь вы готовы начать работу с получением информации о версии Windows с помощью Python.

Настройте переменные среды

Прежде чем начать использовать Python для определения версии Windows, необходимо настроить переменные среды. Это важно для того, чтобы ваш компьютер мог корректно находить и использовать установленную версию Python.

В Windows переменные среды можно настроить следующим образом:

  1. Перейдите в «Свойства системы». Нажмите правой кнопкой мыши на значок «Мой компьютер» на рабочем столе или в меню «Пуск» и выберите «Свойства».
  2. Выберите «Дополнительные параметры системы». В окне «Свойства системы» выберите вкладку «Дополнительно» и нажмите на кнопку «Переменные среды».
  3. Настройте переменные среды для Python. В разделе «Системные переменные» найдите переменную «Path» и нажмите «Изменить». В открывшемся окне нажмите кнопку «Новый» и добавьте путь к папке, где установлена версия Python на вашем компьютере. Например, если у вас установлена версия Python 3.9 в папке «C:\Program Files\Python39», то нужно добавить путь «C:\Program Files\Python39» в переменную «Path».
  4. Сохраните изменения. После добавления пути к Python в переменную «Path» нажмите кнопку «ОК» во всех открытых окнах. Это сохранит изменения и позволит вашему компьютеру находить и использовать установленную версию Python.

После настройки переменных среды вы готовы использовать Python для определения версии Windows. Теперь можно перейти к следующему шагу, который позволит вам написать код для определения версии операционной системы Windows.

Создание скрипта

Чтобы узнать версию операционной системы Windows с помощью Python, нужно написать небольшой скрипт. Вот пошаговое руководство по созданию такого скрипта:

  1. Откройте текстовый редактор.
  2. Создайте новый файл и сохраните его с расширением «.py» (например, «version.py»).
  3. Откройте файл в текстовом редакторе и добавьте следующий код:

import platform

def get_windows_version():

    return platform.win32_ver()[0]

version = get_windows_version()

print(«Версия Windows:», version)

  1. Сохраните файл.

Теперь у вас есть готовый скрипт для определения версии Windows. При запуске он будет выводить версию операционной системы на экран.

Откройте редактор Python

Если у вас еще не установлен редактор Python, вам необходимо загрузить и установить его с официального сайта Python. Вам нужно выбрать версию, совместимую с вашей операционной системой Windows и следовать инструкциям по установке на экране.

После установки редактора Python вы можете открыть его из меню «Пуск» или с помощью ярлыка на рабочем столе. Когда редактор Python запускается, вы увидите интерактивную среду разработки, где вы будете писать свой код на Python.

Напишите код для получения версии Windows

Для получения версии Windows с помощью Python вы можете использовать модуль platform. Вот простой код, который позволяет получить версию Windows:

import platform
windows_version = platform.uname().release
print("Версия Windows:", windows_version)

Этот код использует функцию platform.uname(), которая возвращает информацию о текущей операционной системе. Метод release извлекает версию Windows из этой информации и сохраняет ее в переменной windows_version.

Затем мы просто выводим версию Windows на экран с помощью функции print().

Вы можете запустить этот код в своей среде разработки Python или в командной строке, чтобы узнать версию Windows вашей машины.

Recently I wrote an application which needs Visual C++ 9.0 Runtime (Or Visual C++ 2008 Redistributable) installed. To make this application more friendly to users, detecting Visual C++ Runtime is added to beginning of program. If Visual C++ runtime is not installed on user’s operating system, program will download and install it automatically.

But another problem came, Visual C++ 9.0 Runtime is shipped with Windows 7, we cannot detect whether it’s installed just by scanning registry keys. One solution is to detect Windows version first, if Windows version is equal or later than Windows 7, then my application need not concern C++ Runtime things anymore

In general there are two ways to get windows version in python, one is using getwindowsversion() method of sys module, the other is through platform() method of platform module.

sys.getwindowsversion()

sys.getwindowsversion()

On my windows 7 machine, Running above code in interactive python interpreter will give me following results:

sys.getwindowsversion(major=6, minor=1, build=7600, platform=2, service_pack=»)

First let’s look at platform value, platform=2 means that currently running system is Windows NT platform.

Combining major value and minor value can determine a specific version of system. e.g. Windows NT 6.0 (major value 6 and minor value 0) means Windows Vista or Windows 2008, Windows NT 6.1 shown above tells us it’s Windows 7 or Windows 2008 R2.

You can view this page for a complete reference of Windows operating systems and their responding major version and minor version.

platform module

platform.platform()

will give us an descriptive string:

‘Windows-7-6.1.7600’

Let me explain it in details: Windows-7 is the operating system name well known between users, following 6.1.7600 is meaning major version is 6, minor version is 1 and build No. is 7600

Compared with sys.getwindowsversion(), platform() method is more friendly:)


Post Views:
2,602

VeseliyMargarin

8 / 10 / 5

Регистрация: 06.06.2013

Сообщений: 99

1

14.10.2014, 13:57. Показов 12270. Ответов 2

Метки нет (Все метки)


Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Студворк — интернет-сервис помощи студентам

Суть вопроса такова, как используя Python, определить какая windows на установлена на ПК?
Нужно научить программу отличать XP и 7.

Пробовал

Python
1
2
3
4
5
6
7
8
>>> import sys
>>> sys.platform
'win32'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.architecture()
('32bit', 'WindowsPE')

но это не совсем то.

Где в системе может хранится информация о версии?

Добавлено через 1 час 0 минут
Немного подумав, решил поставленную задачу, может кому то пригодится.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import winreg
import os
 
verpath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
seven = "('6.1', 1)"
xp = "('5.1', 1)"
 
try :
    root = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, verpath, 0, winreg.KEY_SET_VALUE|winreg.KEY_READ)
except EnvironmentError :
    print('Указанный раздел не существует')
    sys.exit(1)
 
ver = str(winreg.QueryValueEx(root, "CurrentVersion"))
 
if ver == seven:
    print('windows 7')
 
if ver == xp:
    print('windows XP')
 
input()



0



Zuzik

298 / 256 / 57

Регистрация: 11.06.2012

Сообщений: 1,557

14.10.2014, 13:58

2

Лучший ответ Сообщение было отмечено ildwine как решение

Решение

скорее всего подойдет

Python
1
platform.win32_ver()

если нет — dir(platform) и вперед перебирать все подходящие по смыслу вещи, благо их немного.



3



VeseliyMargarin

8 / 10 / 5

Регистрация: 06.06.2013

Сообщений: 99

14.10.2014, 14:16

 [ТС]

3

Python
1
2
3
>>> import platform
>>> platform.win32_ver()
('7', '6.1.7601', 'SP1', 'Multiprocessor Free')

И таки работает, спасибо за подсказку.



0



  • Как определить версию ос windows на вашем компьютере
  • Как определить версию windows по файлам на диске
  • Как определить версию windows server
  • Как определить версию windows на жестком диске
  • Как определить версию bluetooth windows 10