Как правильно установить Python

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

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

Выберите правильную версию и дистрибутив Python

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

На момент написания этой статьи Python 3.8.1 является самой последней версией. Таким образом, безопасный вариант - использовать последнее обновление Python 3.7 (в данном случае Python 3.7.6). Вы всегда можете опробовать самую последнюю версию Python контролируемым образом - например, на виртуальной машине или на тестовой машине - но возврат на одну версию назад гарантирует лучшую совместимость с распространенными сторонними пакетами Python.

Python также входит во множество дистрибутивов, во многом так же, как и Linux. Однако, в отличие от Linux, Python предлагает одну золотую стандартную «официальную» версию, к которой вы всегда можете прибегнуть: CPython, версия, предоставленная Python Software Foundation на python.org. Опять же, это самый безопасный и наиболее совместимый дистрибутив, за который никто не увольняется. (Возможно, вы захотите изучить другие дистрибутивы Python позже, поскольку они касаются конкретных вариантов использования, которые могут у вас возникнуть, но мы не будем их здесь рассматривать.)

Один из ключевых вариантов, который вам нужно сделать, особенно в Windows, - использовать ли 32-битную или 64-битную версию Python. Наиболее вероятный ответ - 64-битный, по следующим причинам:

  • Большинство современных операционных систем по умолчанию используют 64-битную версию Python. Пользователи Windows могут запускать 32-битные версии Python в 64-битной Windows, но с небольшой потерей производительности. 
  • 32-битный Python и 32-битные приложения в целом могут одновременно обращаться только к 4 ГБ памяти. 64-битные приложения не имеют этого ограничения, поэтому многие инструменты анализа данных и машинного обучения для Python лучше всего работают в 64-битных воплощениях. Некоторые доступны только в 64-битных версиях. 

Единственный раз, когда вам следует выбрать 32-битную версию Python, - это если вы застряли на 32-битной версии Windows или вам нужно использовать сторонний модуль, который доступен только в 32-битной версии.

Установите Python в Windows с умом

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

По умолчанию установщик Python для Windows помещает свои исполняемые файлы в AppDataкаталог пользователя , поэтому для него не требуются права администратора. Если вы единственный пользователь в системе, вы можете поместить Python в каталог более высокого уровня (например C:\Python3.7), чтобы его было легче найти. Установщик Windows позволяет указать целевой каталог.

Выберите правильный установщик Python для Windows

Python.org предлагает несколько различных воплощений Python для Windows. В дополнение к уже упомянутым 32-разрядным («x86») и 64-разрядным («x86-64») версиям вы можете выбрать из встраиваемого zip-файла, исполняемого установщика и веб-установщика. Вот о чем все это:

  • Исполняемый инсталлятор просто файл .EXE , который запускает процесс Python установки. Это простой и наиболее часто используемый выбор по умолчанию.
  • Веб-инсталлятор является такой же , как исполняемый инсталлятор, за исключением того, что он отдельно загружает биты , необходимые для выполнения установки. Это значительно уменьшает размер самого установщика, но, конечно, требует подключения к сети.
  • Встраиваемый почтовый файл является самодостаточной, минимальной копией выполнения Python , который помещается в одной папке , без каких - либо зависимостей. Его полезно объединить, когда вы хотите распространять приложение Python вручную или когда вам нужна быстрая разовая установка Python для тестирования чего-либо на лету. Но встраиваемый zip-архив не включает  pipили какие-либо другие полезные инструменты, которые поставляются с полной установкой, поэтому он предназначен только для использования специалистами.

Установите Python с помощью диспетчера пакетов для Windows

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

Chocolatey, более общая система управления пакетами Windows, также предлагает Python. Chocolatey - это удобный способ запустить установщик Python и отслеживать наличие среды выполнения языка Python в вашей системе - и, следовательно, это лучший выбор, чем NuGet. Однако лучше избегать смешивания и сопоставления установок Chocolatey и обычных установок Python в одной и той же системе.

Установите Python в Linux с умом

Поскольку дистрибутивы Linux значительно различаются, типичным способом установки Python в Linux является использование диспетчера пакетов конкретного дистрибутива. Например, Ubuntu и Fedora имеют совершенно разные процедуры установки Python. В Linux (и MacOS) целевой каталог для установки обычно предопределен и основан на номере версии Python, например, /usr/bin/python3.Xв Linux или /usr/local/opt/python/на Mac.

Один из способов избежать тонкостей менеджеров пакетов Linux - использовать контейнерную среду выполнения Python. Контейнеры работают изолированно от остальной системы, поэтому вам не нужно беспокоиться о том, что разные среды выполнения Python наступят друг другу на пятки. Однако, если ваш рабочий процесс еще не включает контейнеры, вам нужно потратить время и силы, чтобы быстро освоить Docker. (Обратите внимание, что вы также можете использовать контейнерный Python в Windows.)

Здесь также пригодится инструмент под названием asdf-vm. Вы можете использовать asdf-vm для управления несколькими средами выполнения Python в Unix-подобных системах (Linux и MacOS), а также несколькими средами выполнения для Node.js, Ruby, Elixir и многих других языков. Так что, если вы обнаружите, что манипулируете версиями других вещей, помимо Python, вам стоит изучить asdf-vm.

Установите Python на MacOS с умом

MacOS традиционно поставляется с установленной версией Python, но никогда не новее, чем Python 2.7. Это создало проблемы, когда появился Python 3, поскольку две версии часто конфликтовали. В официальной документации Python есть некоторые примечания на этот счет, но нет более подробных рекомендаций, кроме как убедиться, что вы используете правильный путь для нужного экземпляра Python.

Распространенным способом управления средами выполнения Python в MacOS является диспетчер пакетов Homebrew. Homebrew предоставляет последовательный интерфейс для загрузки, установки, управления и удаления Python и других сторонних приложений командной строки.

Умная установка пакетов Python

После того, как у вас настроена базовая установка версии Python, не начинайте устанавливать пакеты непосредственно в нее с pip - нет, даже если вы планируете использовать Python только для одного проекта. Настройте каталоги проектов, установите в них виртуальные среды Python, а затем установите пакеты в эти виртуальные среды. Таким образом, базовая установка остается чистой.

Чтобы получить высокоуровневый способ управления несколькими проектами с виртуальными средами и зависимостями, загляните в проект Poetry. Poetry предоставляет инструмент командной строки для управления виртуальными средами и зависимостями на высоком уровне.

Установите несколько версий Python бок о бок

Самая сложная проблема при установке Python - как обрабатывать разные версии Python, установленные бок о бок. Здесь применяются два универсальных практических правила:

  • Всегда устанавливайте каждую версию в другой каталог.
  • Убедитесь, что все системные пути настроены так, чтобы сначала указывать на версию, которую вы хотите запустить по умолчанию.

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

Другой вариант, который пользователи Windows должны контролировать, какую версию Python использовать при установке нескольких версий, - это pyприложение запуска. Во время установки Python вам предлагается установить pyсредство запуска, небольшой исполняемый файл, который позволяет вам выбрать (с помощью флагов командной строки), какую версию Python использовать для данного скрипта. Например, чтобы запустить pipPython 3.7, вы должны ввести  py -3.7 -m pip.

Обновите Python с умом

Незначительные обновления версии для Python - например, с Python 3.7.2 до Python 3.7.3 - обычно достаточно просты. В Windows установщик определяет наличие существующей версии и обновляет ее. В Linux и MacOS установщик или менеджер пакетов обычно делают то же самое.

Однако любые созданные вами виртуальные среды также потребуют обновления; они не обновляются автоматически. Чтобы обновить Python в виртуальной среде, просто перейдите в каталог виртуальной среды и введите  venv --upgrade. Опять же, обратите внимание, что это лучше всего работает только для небольших обновлений версии - например, с Python 3.7.2 до Python 3.7.3.

Если вы выполняете обновление основной версии, например с Python 3.7 до Python 3.8, лучше всего использовать venvдля создания нового отдельного подкаталога виртуальной среды в каталоге проекта, переустановить в нем все зависимости и переключиться на использование новая виртуальная среда. Большинство IDE с поддержкой Python (например, Microsoft Visual Studio Code) обнаруживают несколько виртуальных сред в проекте и позволяют переключаться между ними.