Настройка Python в Windows

Существует много способов установки Python на Windows — слишком много способов. Согласно Дзену Python:

Должен быть один — и желательно только один — очевидный способ сделать это.

В этом духе я описываю здесь, как мне кажется, самый простой способ установки Python на Windows, где «простой» означает:

  1. использование чистого Python, без дополнительных пакетов;
  2. возможность существования нескольких версий Python бок о бок, не разрушая друг друга; и
  3. не использовать никакой магии, что означает, что пользователь контролирует ситуацию и может все понять (это связано с пунктом 1 выше);

Если вы никогда не устанавливали Python, основные шаги следующие:

  1. отключить программу установки Python для Windows;
  2. скачайте Python — столько версий, сколько хотите — с сайта python.org;
  3. установите каждую версию в свой каталог пользователя с помощью программы запуска Python, но не добавляя ничего в свой путь; и
  4. используя py.exe, программу запуска Python, встроенную в Python в Windows, в каждом из ваших проектов создайте виртуальную среду как вложенную папку в папке проекта, указав необходимую версию Python.

В заключение я дам несколько советов по использованию VS Code и расскажу об альтернативных методах установки Python в Windows.

Шаг 1: Отключите программу установки Python в Windows

Если вы наберете python или python3 в командной строке в новой установке Windows 10, вы попадете на ссылку Microsoft Store для установки Python. Предполагается, что это упростит жизнь новичкам. Это вроде бы так и есть, но за счет потенциального усложнения управления несколькими версиями Python. Установка через Microsoft Store для меня пахнет магией, поэтому я не рекомендую ее.

Чтобы отключить это поведение, перейдите в Пуск→Управление псевдонимами выполнения приложений и отключите переключатели для App Installer — python.exe и App Installer — python3.exe, как показано ниже:

Шаг 2: Скачайте Python с python.org

Чтобы избежать магии, скачайте Python напрямую. Вы можете установить столько версий, сколько захотите. Порядок установки не имеет значения, хотя (как обсуждается ниже) он может повлиять на поведение py.exe, программы запуска Python.

Шаг 3: Установите Python в каталог пользователя, с программой запуска

По умолчанию, когда вы устанавливаете Python с помощью программы установки с сайта python.org:

  1. Python будет установлен в каталог пользователя, а не в системный каталог,
  2. Python установит программу запуска Windows, py.exe, для всех пользователей (в C:Windows), и
  3. Python не будет изменять ваш системный путь.

Примите эти значения по умолчанию. Экран установки должен выглядеть следующим образом:

После того, как вы выберете Install now, на следующем экране вас спросят, хотите ли вы отключить ограничение длины пути, чтобы ваш путь мог превысить системный лимит в 260 символов. Я подозреваю, что в этом нет необходимости, поскольку мы намеренно не добавляем Python в путь. Но я не уверен, что есть обратная сторона. Используйте свое суждение.

Примечание: В следующий раз, когда вы будете устанавливать какую-либо версию Python, опция Install launcher for all users, скорее всего, будет выделена серым цветом, поскольку она уже будет установлена. Если она будет выделена серым цветом, это нормально. Если он не выделен серым цветом, оставьте его выбранным, и программа запуска будет обновлена.

Шаг 4: Используйте py.exe для создания виртуальных сред

Программа запуска Python py.exe позволяет легко работать с несколькими различными версиями Python. Основные команды (выполняются в командной строке):

    • Здесь есть немного магии. Когда вы устанавливаете новую версию Python, программа запуска автоматически обновляется, так что при запуске py без аргументов запускается последняя версия Python.
    • Как правило, вы не будете использовать этот параметр самостоятельно, поскольку вы будете использовать py для создания виртуальных сред, а не для запуска Python вне среды.
    • Без аргументов это запускает Python REPL. С аргументами это способ выполнения модулей или скриптов. Это ключ к созданию виртуальных сред.

Создание виртуальных сред с помощью py.exe и venv

  • В командной строке создайте каталог проекта и перейдите в него. Например (здесь > — приглашение):
> cd C:my_projects
> mkdir project1
Войти в полноэкранный режим Выйти из полноэкранного режима
  • В каталоге проекта используйте py для создания виртуальной среды, указав версию python и имя каталога. Например:
> cd C:my_projectsproject1
> py -3.9 -m venv p1_venv
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Обратите внимание:
    • Вы можете заменить любую установленную версию на -3.9 в этом утверждении (вам не нужно указывать младшую версию).
    • Имя окружения p1_venv является произвольным.
    • Это создаст подпапку p1_venv в родительской папке C:my_projectsproject1.
    • Такая структура — папка проекта верхнего уровня с виртуальной средой во вложенной папке — является предпочтительной для разработки Python с помощью VS Code.
    • Многие люди используют venv или .venv для имени среды. Мне не нравится это соглашение, потому что имя venv или .venv совершенно неинформативно — оно появляется в подсказке, чтобы сказать вам, что активирована какая-то виртуальная среда, но не какая именно.
    • Могут быть и другие веские причины для того, чтобы всегда использовать venv или .venv для названия виртуальной среды. Возможно, это облегчает другие задачи по настройке. Но я никогда не видел, чтобы кто-то объяснял преимущества (если они существуют).

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

Если ваша виртуальная среда находится по адресу C:my_projectsproject1p1_venv, активируйте ее следующим образом:

> cd C:my_projectsproject1
> .p1_venvScriptsactivate
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Теперь вы должны увидеть имя виртуальной среды перед подсказкой, как показано ниже (при условии, что ваш рабочий каталог также отображается в подсказке):

(p1_venv) C:my_projectsproject1>
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы отключить режим, просто введите deactivate в подсказке.

Использование псевдонимов Powershell для упрощения работы с виртуальными средами

Создание псевдонимов Powershell может упростить работу с виртуальными средами. Основываясь на приведенном выше примере, вы можете поместить что-то вроде этого в свой профиль Powershell (профиль для конкретного пользователя и хоста находится по адресу $profile.CurrentUserCurrentHost и называется Microsoft.PowerShell_profile.ps1, где бы он ни находился).1):

# create function and alias that calls function
# p1 will change to project directory and activate environment

Function Use-project1 {
  cd "C:my_projectsproject1" 
  .p1_venvScriptsactivate
}

Set-Alias p1 Use-project1
Вход в полноэкранный режим Выход из полноэкранного режима

Использование VS Code с виртуальными средами Python

Расширение VS Code Python предназначено для работы с виртуальными средами, но я нашел документацию запутанной. Отвечая на свой вопрос на StackOverflow, я понял, что, по моему мнению, является хорошим рабочим процессом. Предполагается, что вы уже создали виртуальную среду во вложенной папке в каталоге проекта:

  1. В командной строке перейдите в каталог проекта (каталог, содержащий вашу виртуальную среду). (При желании вы можете создать псевдоним для этой навигации).
  2. Оттуда выполните команду code ..

Это откроет VS Code, используя каталог вашего проекта в качестве рабочей среды. Если вы создадите или откроете файл Python в рабочей области, VS Code автоматически обнаружит и активирует виртуальную среду во вложенной папке рабочей области (т.е. в каталоге проекта).

У вас может возникнуть соблазн использовать виртуальную среду в качестве каталога проекта, то есть в качестве корня рабочего пространства. Не делайте этого. В документации к VS Code должно быть сказано2):

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

Вы можете создать виртуальную среду Python внутри рабочего пространства с помощью встроенного терминала VS Code. Но я предпочитаю сначала создать среду вне VS Code, потому что так я точно знаю, что происходит.

Если по какой-то причине VS Code не обнаруживает вашу виртуальную среду, вы можете вручную направить VS Code на нее, открыв палитру команд с помощью Ctrl-Shift-P, введя Python: Select Interpreter, и перейдите к python.exe, который находится в подпапке Scripts виртуальной среды. Это нужно сделать только один раз.

Альтернативные методы установки Python в Windows

Проект pyenv.

Существует целый проект pyenv for Windows, специально разработанный для того, чтобы вы могли управлять несколькими версиями Python в Windows. Это впечатляющая работа, и если она вас заинтересовала, ознакомьтесь с очень подробным руководством по использованию этого проекта в Real Python.

Я предпочитаю не использовать его по двум причинам:

  1. Я не вижу в нем необходимости, учитывая существование py.exe. И .
  2. Он хорошо работает только в том случае, если вы используете исключительно его. Например, если вы ранее установили версию Python напрямую, без использования pyenv, то pyenv не определит установленную версию.

Использование venv или virtualenv (или чего-то другого)

Начиная с Python 3.3, venv является инструментом в стандартной библиотеке Python для создания виртуальных сред. Для простоты, как и автор второго ответа на этот вопрос на StackOverflow, я (и, видимо, Гвидо ван Россум) предпочитаю использовать именно его.

Однако вы увидите множество ссылок на использование virtualenv для создания виртуальных сред. Он существовал до venv и, очевидно, является единственным вариантом, если вы используете Python 2.x. А pyenv включает еще больше связанных инструментов. Эти различные инструменты обобщены в первом ответе на вопрос StackOverflow, процитированный выше. Я не согласен с ответом, но в нем много полезной информации.


1Подробнее о профилях Powershell см. сноску 1 в моем сообщении о настройке среды разработки Windows.

2Вместо этого очень четкого предупреждения в документации по VS Code написано:

Примечание: Хотя можно открыть папку виртуальной среды в качестве рабочей области, делать это не рекомендуется и может вызвать проблемы с использованием расширения Python.

Оцените статью
Procodings.ru
Добавить комментарий