Установить Python в Windows

Содержание
Проверка установленных версий
Скачать Python
Установка
Расположение файлов
Использование определённых версий
Скачивание с PowerShell
Установка с нуля с PowerShell
Похожие статьи

Проверка установки Python в Windows

В PowerShell выполните

python

Python 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>

Из этого сообщения можно понять что текущая версия Python это 3.10.10

Посмотреть есть ли ещё установленные версии Python можно проверив директорию куда он устанавливается

ls C:\Users\${Env:Username}\AppData\Local\Programs\Python\

Directory: C:\Users\Andrei\AppData\Local\Programs\Python Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 4/30/2024 1:19 PM Python310 d---- 2/14/2024 3:34 PM Python312 d---- 4/17/2024 4:24 PM Python312-32 d---- 2/19/2024 11:52 AM Python38

Видно что у меня установлены 64-x битные Python 3.8, 3.10, 3.12 и 32-х битная версия Python 3.12

Скачивание

Скачать последнюю стабильную версию можно на официальном сайте Python

Выберите версию и в таблице найдите нужный вам файл.

Рекомендуемая версия это Windows installer (64-bit)

Скачанный файл будет называть примерно так

python-3.XX.XX-amd64.exe

Например, python-3.10.10-amd64.exe

Python 3.12.3

Python 3.10.11

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Установка

Запустить установку можно двойным кликом на .exe файл.

Рекомендую сразу же добавить python.exe в системную переменную PATH

Установка Python в Windows изображение с сайта www.devhops.ru
Установка Python
www.devhops.ru

Если вы уже пропустили этот шаг добавить Python в PATH можно командой PowerShell

$Env:Path += ';C:\Users\${Env:Username}\AppData\Local\Programs\Python\Python312'

Либо явно укажите пользователя. В примере ниже указан пользователь Andrei

$Env:Path += ';C:\Users\Andrei\AppData\Local\Programs\Python\Python312'

Дождитесь окончания установки

Установка Python в Windows изображение с сайта www.devhops.ru
Установка Python
www.devhops.ru

В случае успеха появится похожее сообщение

Установка Python в Windows изображение с сайта www.devhops.ru
Установка Python
www.devhops.ru

Для изучения предлагаются следующие материалы:

Онлайн туториал

Документация

Применение Python в Windows

Что нового в релизе

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Расположение файлов

Если Python установлен для всех пользователей то .exe файл может находится здесь:

C:\Windows\py.exe

Если Python был установлен для определённого пользователя, то python.exe будет находися в AppData

C:\Users\Andrei\AppData\Local\Programs\Python\Python310

Вместо Andrei будет имя того пользователя, для которого установлен Python

Проверить куда установлен

# which_python.py import os import sys print(os.path.dirname(sys.executable))

python which_python.py

'C:\Users\ao\AppData\Local\Programs\Python\Python312\python.exe'

Ещё быстрее будет сделать это в интерактивном режиме.

Ещё одно место, где можно найти python.exe это

C:\Users\Username\AppData\Local\Microsoft\WindowsApps

Использование определённых версий

Подробно про создание алиасов в PowerShell вы можете прочитать в статье Alias в PowerShell

notepad $profile

Set-Alias -Name py38 -Value "C:\Users\U\AppData\Local\Programs\Python\Python38\python.exe" Set-Alias -Name py310 -Value "C:\Users\U\AppData\Local\Programs\Python\Python310\python.exe"

Эти алиасы будут доступны только в PowerShell

Теперь выполнив одну из этих команд вы будете запускать определённую версию Python

py310

Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.

Это может пригодится для создания виртуальных окружений

py310 -m venv venv
.\venv\Scripts\activate

Внутри окружения нужно ипользовать не py310 а python

Скачивание PowerShell скриптом

Пример скачивания python.exe PowerShell скриптом

# DownloadPython.ps1 $ARCH = 64 # $ARCH = 32 $PY_VERSION = "3.12.5" $TMP_DISK = "C:\" $TMP_DIR = "tmp_python" $TMP_PATH = Join-Path -Path $TMP_DISK -ChildPath $TMP_DIR $URL = "https://www.python.org/ftp/python/${PY_VERSION}" Write-Host $URL -f Cyan Write-Host "Using ${ARCH}-bit Python" -f Cyan If ($ARCH -eq 64) { Write-Host "64-bit case" -f Cyan $PYTHON_EXE_URL = ${URL} + "/python-3.12.5-amd64.exe" } Else { Write-Host "32-bit case" -f Cyan $PYTHON_EXE_URL = ${URL} + "/python-3.12.5.exe" } $CURRENT_USER = $Env:Username $TMP_PYTHON_EXE = Join-Path -Path $TMP_PATH -ChildPath "python.exe" Write-Host $TMP_PYTHON_EXE -f Gray If (Test-Path -path ${TMP_PATH}) { Write-Host "${TMP_PATH} dir exists" -f Green } Else { Write-Host "${TMP_PATH} dir does not exist - creating" -f Yellow New-Item -Path $TMP_DISK -Name $TMP_DIR -ItemType "directory" } If (Test-Path -path $TMP_PYTHON_EXE -PathType Leaf) { Write-Host "python.exe file exists" -f Green } Else { Write-Host "python.exe file does not exist - starting download" -f Yellow Write-Host "Downloading ${PYTHON_EXE_URL}" -f Cyan Invoke-WebRequest $PYTHON_EXE_URL -OutFile $TMP_PYTHON_EXE }

Установка PowerShell скриптом

Рассмотрим пример создания с нуля готового виртуального окружения Python.

Управляющий скрипт будет называться InitialSetup.ps1 .

С его помощью мы запустим скачивание и установку Python - скрипт DownloadAndInstallPythonAndUpdatePath.ps1 .

Затем добавим нужные пути в систему с помощью AddPythonPath.ps1 .

Когда пути обновлены запустится скрипт который дожидается установки Python - WatchForPythonAndCreateEnv.ps1 и затем содает вирутальное окружение с помощью CreateEnv.ps1 предварительно можно почистить WindowsApps с помощью DeletePythonFromWindowsApps.ps1

Структура проекта выглядит следующим образом

├───module └───setup ├───CreateEnv.ps1 ├───DeletePythonFromWindowsApps.ps1 ├───DownloadAndInstallPythonAndUpdatePath.ps1 ├───InitialSetup.ps1 ├───IsPythonInstalled.ps1 └───WatchForPythonAndCreateEnv.ps1

Логически скрипты можно расположить так

├───module └───setup └───InitialSetup.ps1 ├───DeletePythonFromWindowsApps.ps1 ├───DownloadAndInstallPythonAndUpdatePath.ps1 └───WatchForPythonAndCreateEnv.ps1 ├───IsPythonInstalled.ps1 └───CreateEnv.ps1

Пример скачивания и установки для всех пользователей python.exe PowerShell скриптом.

# DownloadAndInstallPythonAndUpdatePath.ps1 # Author: andreyolegovich.ru for www.devhops.ru $ARCH = 64 # $ARCH = 32 $PY_VERSION = "3.12.5" $TMP_DISK = "C:\" $TMP_DIR = "tmp_python" $TMP_PATH = Join-Path -Path $TMP_DISK -ChildPath $TMP_DIR $URL = "https://www.python.org/ftp/python/${PY_VERSION}" Write-Host "${ARCH}-bit case" -f Cyan Write-Host $URL -f Cyan Write-Host "Using ${ARCH}-bit Python" -f Cyan $CURRENT_USER = $Env:Username $USER_DIR = Join-Path "C:\Users\" -ChildPath $CURRENT_USER $APP_DATA_PY = Join-Path -Path $USER_DIR -ChildPath "\AppData\Local\Programs\Python" If ($ARCH -eq 64) { $PYTHON_EXE_URL = ${URL} + "/python-3.12.5-amd64.exe" $LOCAL_PY_PATH = Join-Path -Path $APP_DATA_PY -ChildPath "\Python312\" $PROGRAM_FILES_PY = 'C:\Program Files\Python312\;' } Else { $PYTHON_EXE_URL = ${URL} + "/python-3.12.5.exe" $LOCAL_PY_PATH = Join-Path -Path $APP_DATA_PY -ChildPath "\Python312-32\" $PROGRAM_FILES_PY = 'C:\Program Files (x86)\Python312-32\;' } $Env:Path = $LOCAL_PY_PATH + ";" + $Env:Path $LOCAL_PY_SCRIPTS_PATH = Join-Path -Path $LOCAL_PY_PATH -ChildPath "Scripts" $Env:Path = $LOCAL_PY_SCRIPTS_PATH + ";" + $Env:Path $Env:PYTHONPATH += $LOCAL_PY_SCRIPTS_PATH $Env:Path = $PROGRAM_FILES_PY + $Env:Path $Env:PYTHONPATH += $PROGRAM_FILES_PY $TMP_PYTHON_EXE = Join-Path -Path $TMP_PATH -ChildPath "python.exe" Write-Host $TMP_PYTHON_EXE -f Gray If (Test-Path -path ${TMP_PATH}) { Write-Host "${TMP_PATH} dir exists" -f Green } Else { Write-Host "${TMP_PATH} dir does not exist - creating" -f Yellow New-Item -Path $TMP_DISK -Name $TMP_DIR -ItemType "directory" } If (Test-Path -path $TMP_PYTHON_EXE -PathType Leaf) { Write-Host "python.exe file exists" -f Green } Else { Write-Host "python.exe file does not exist - starting download" -f Yellow Write-Host "Downloading $PYTHON_EXE_URL" -f Cyan Invoke-WebRequest $PYTHON_EXE_URL -OutFile $TMP_PYTHON_EXE } # Update Path $PARENT_PATH = Split-Path $pwd $Env:Path += ';' $Env:Path += $PARENT_PATH $Env:Path += '\module' $Env:Path += ';' $Env:Path += $PARENT_PATH $Env:PYTHONPATH += ';' $Env:PYTHONPATH += $PARENT_PATH $Env:PYTHONPATH += '\module' $Env:PYTHONPATH += ';' $Env:PYTHONPATH += $PARENT_PATH $Env:PYTHONPATH += ';' $Env:Path = 'C:\Windows\;' + $Env:Path $Env:PYTHONPATH += 'C:\Windows\' # Install Python & $TMP_PYTHON_EXE /passive InstallAllUsers=1 PrependPath=1 Include_test=0

Скрипт, который проверяет завершилась ли установка Python и когда она завершается создает виртуальное окружение а затем устанавливает зависимости.

Get-Command python -ErrorAction SilentlyContinue - не очень надёжный способ проверки. Если в C:\Users\Name\AppData\Local\Microsoft\WindowsApps есть файлы python.exe или python3.exe он может вернуть положительный результат.

# WatchForPythonAndCreateEnv.ps1 . .\IsPythonInstalled.ps1 . .\CreateEnv.ps1 $py_installed = 0 $counter = 1 while ($counter -gt 0) { # Write-Output "while loop is running" Write-Host $counter -f Green $counter = $counter + 1 $py_installed = IsPythonInstalled Write-Host $py_installed -f Red Start-Sleep -Seconds 3.0 if ($py_installed -eq 1) { Write-Host "Python is installed waiting for 10 seconds" -f Green Start-Sleep -Seconds 10.0 CreateEnv $counter = 0 } }

# IsPythonInstalled.ps1 function IsPythonInstalled { # Write-Output "IsPythonInstalled is running" $installed = Get-Command python -ErrorAction SilentlyContinue Write-Host $installed -f Yellow if ($installed) { $version = python --version 2>&1 Write-Host "Python version: $version" -f Green $result = 1 } else { Write-Host "Python is not yet installed on this device." -f Yellow $result = 0 } return $result }

# CreateEnv.ps1 function CreateEnv { Write-Host "Creating virtual environment" -f Blue Write-Host "cd .." -f Blue cd .. Write-Host "python -m venv venv32" -f Blue python -m venv venv32 Write-Host ".\venv32\Scripts\activate" -f Blue .\venv32\Scripts\activate Write-Host "python -m pip install -r requirements.txt" -f Blue python -m pip install -r requirements.txt Write-Host "cd .\setup" -f Blue cd .\setup } # If used separately uncomment line below # CreateEnv

Скрипт, который удаляет Python .exe файлы из WinodwsApps

# DeletePythonFromWindowsApps.ps1 $CURRENT_USER = $Env:Username $PYPATH = 'C:\Users\' + $CURRENT_USER + '\AppData\Local\Microsoft\WindowsApps\python.exe' $PY3PATH = 'C:\Users\' + $CURRENT_USER + '\AppData\Local\Microsoft\WindowsApps\python3.exe' If (Test-Path -path ${PYPATH}) { Remove-Item $PYPATH } If (Test-Path -path ${PY3PATH}) { Remove-Item $PY3PATH }

Скрипт, который удаляет временную директорию для Python

# CleanTempPython.ps1 $TMP_PATH = "C:\tmp_python" $TMP_PYTHON_EXE = Join-Path -Path $TMP_PATH -ChildPath "python.exe" Write-Host $TMP_PYTHON_EXE -f Gray If (Test-Path -path $TMP_PYTHON_EXE -PathType Leaf) { Remove-Item $TMP_PYTHON_EXE } Else { Write-Host "python.exe file does not exist" -f Yellow }

Скрипт, который запускает все предыдущие скрипты: скачивание и установку Python, обновление системных переменных и создание виртуального окружения после установки

# InitialSetup.ps1 # Exec the following command in Powershell first # Set-ExecutionPolicy -ExecutionPolicy Unrestricted Write-Host "Downloading and Installing Python and Updating Env" -f Green .\DownloadAndInstallPythonAndUpdatePath.ps1 Write-Host "Delete Python .exe files from WindowsApps" .\DeletePythonFromWindowsApps.ps1 Write-Host "Waiting for installation to finish and creating Python venv" -f Green .\WatchForPythonAndCreateEnv.ps1 Write-Host "Cleaning temporary dir" -f Green .\CleanTempPython.ps1

Похожие статьи
Python
Сложности при работе с Python
Виртуальное окружение
pyenv
Anaconda

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: