как установить старую версию python windows
Как переключаться между различными версиями Python. Как установить Python 2
pyenv позволяет легко переключаться между несколькими версиями Python. Он простой, ненавязчивый и следует традиции UNIX одноцелевых инструментов, которые хорошо справляются с одной задачей.
В отличие от pythonbrew и pythonz, pyenv не:
Как установить pyenv в Debian, Ubuntu, Linux Mint, Kali Linux и их производные
Всё ещё существует довольно много востребованных инструментов, которые не были перенесены с Python 2 на Python 3, что вызывает проблемы при их использовании. Эта страница расскажет, как безопасно использовать устаревшую версию.
Python 2 больше не поддерживается в репозиториях Debian. Это означает, что мы должны найти способ обойти эту проблему. pyenv решает эту проблему, позволяя нам устанавливать несколько версий Python, которые не конфликтуют друг с другом. В настоящее время его нет в репозиториях Debian или Kali, поэтому нам нужно будет установить его из исходников. К счастью, есть удобный скрипт установки, выпущенный авторами. Давайте вместе пройдём установку и настройку.
Начнём с установки зависимостей:
Далее мы просто запустим скрипт установки, написанный на bash. Если ZSH является оболочкой по умолчанию, после этого нам придётся отредактировать файл .zshrc.
Если мы используем ZSH, то теперь мы добавим соответствующие строки в наш .zshrc.
Использование версий Python 2 в Debian, Ubuntu, Linux Mint, Kali Linux и их производных
Теперь мы можем установить Python 2 и сделать его нашей версией Python по умолчанию в pyenv:
Теперь мы можем устанавливать зависимости по мере необходимости для любых инструментов, которые мы используем. Когда мы хотим вернуться к Python 3, нам просто нужно установить значение global на system.
Следует иметь в виду, что нужно устанавливать зависимости через pip. apt будет не очень любезен, если вы пытаетесь установить зависимости Python 2 через него и через pip, поэтому в этом случае просто придерживайтесь pip.
Понизьте версию Python с 3.9 до 3.8
Понизьте версию Python с 3.9 до 3.8 с помощью модуля virtualenv
Метод virtualenv используется для создания и управления различными виртуальными средами для Python на устройстве; это помогает решить проблемы с зависимостями, проблемами с версиями и разрешениями в различных проектах.
После установки вам просто нужно активировать нашу виртуальную среду. Вы можете сделать это, выполнив команду ниже:
Понизьте версию Python с 3.9 до 3.8 с помощью Anaconda
Эта команда создает новую виртуальную среду под названием downgrade для нашего проекта с Python 3.8. Следующим шагом будет активация нашей виртуальной среды. Команда для запуска виртуальной среды с помощью conda приведена ниже.
Понизьте версию Python с 3.9 до 3.8 с помощью панели управления
Этот метод работает только для устройств под управлением операционной системы Windows. Этот подход включает в себя удаление ранее существовавшей версии Python вручную и повторную установку необходимой версии.
Теперь, когда предыдущая версия Python удалена с вашего устройства, вы можете установить желаемую версию программного обеспечения, перейдя на официальную страницу загрузки Python.
Этот подход наименее предпочтителен из тех, что обсуждаются в этом руководстве. Это потому, что этот подход работает только для Windows и должен использоваться только тогда, когда нам больше не нужна предыдущая версия Python.
Лучшим подходом для понижения версии Python или использования другой версии Python, помимо той, которая уже установлена на вашем устройстве, является использование Anaconda. Команды для использования Anaconda очень просты и автоматизируют для нас большинство процессов.
Менеджер версий python
Иногда полезно держать несколько версий python на одной машине. Допустим для разработки двух проектов нам необходима вторая и третья ветка python. Или вы поддерживаете проект который использует старую версию python.
Обычно для этого мы используем виртуальное окружение virtualenv или же обертку для него virtualenvwrapper. Об этом я рассказывать не буду, так как есть уже много подобных статей, да и в документациях к самим утилитам все очень хорошо объяснено. Достаточно только забить virtualenv или virtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про менеджер версий python. Кому любопытно прошу под кат.
Чтобы использовать несколько версий python, можно установить их вручную или воспользоваться менеджер версий. Таких есть два: pythonbrew(который более не развивается) и pyenv. Оба менеджера не поддерживают windows(pythonbrew, pyenv) так что питонистам пишущим на этой платформе, придется пока разруливать все руками, либо сделать свою утилиту для смены путей до нужных версий. Кто как справляется с данной ситуацией можете оставлять в комментариях.
Так как pythonbrew более не поддерживается в этой статье он рассмотрен не будет.
P.S. В статье приведены примеры проверенные для OS Ubuntu 12.04. При попытке повторить их, делайте поправки относительно своего дистрибутива.
Ручной способ
Для того чтобы работать с несколькими версиями питона, можно установить необходимые версии в указанный префикс. Например чтобы не мудрить с правами, установим дополнительно 2 версии python(2.7.6 и 3.3.2) в директорию пользователю:
2.7.6
для 3.3.2 делаем аналогичные операции:
Теперь можно создать виртуальное окружение чтобы использовать эти версии:
или через virtualenvwrapper:
Собственно на основании такого способа описана статья по созданию мультихостинга.
Далее если вам необходимо использовать какую-то из этих версий как python по умолчанию, то вам необходимо добавить в переменную окружения путь до интерпретатора python.
Соответственно вместо bashrc вы ставите bash_profile, zshrc, kshrc, profile в зависимости от вашей командной оболочки.
И по необходимости можно установить pip, предварительно установив setuptools.
Фух, ну вроде бы все. А теперь о том как можно сделать это проще использую менеджер версий python.
PyEnv
В общем если вы достаточно ленивы, то можно не делать всего того что описано выше а воспользоваться утилитой pyenv, которая упростит вам данное взаимодействие с окружением и путями.
Как ставить pyenv хорошо описывается в инструкции. Так же у автора есть скрипт который по мимо самой pyenv ставит еще и дополнительные плагины, в том числе и для virtualenv. Есть возможность установить плагин и для virtualenvwrapper.
Прежде чем начать установку, убедитесь, что у вас установлен git:
Далее устанавливаем по инструкции:
Во втором случае установка произойдет с дополнительными плагинами.
Далее, для того чтобы все заработало, дополним наш bashrc и перезагрузим оболочку:
Для обновления утилиты или смены ее версии используем git.
Для управления версиями pyenv необходимо перейти в директорию с утилитой:
Для просмотра доступных версий:
Пример использования
В добавок ко всему все довольно подробно и детально расписано у автора проекта в его репозиториях на github.
Виртуальное окружение
Все, а дальше как хотите. Если вы используете 3 ветку python то для создания виртуального окружения можно воспользоваться утилитой venv которая работает из коробки. Про это есть статья на хабре. Если вы больше привыкли к virtualenv или ее обертке virtualenvwrapper то тут есть два варианта: либо поставить плагин к pyenv, или использовать их к той версии python c которой вы работаете. Соответственно если выбрать первый вариант, то созданные вами окружения будут добавлены к вашим версиям python и доступны через команду:
Добавить плагин легко, просто клонируем его из репозитория pyenv-virtualenv или pyenv-virtualenvwrapper:
Пример использования можно посмотреть в документации для pyenv-virtualenv и pyenv-virtualenvwrapper.
Все, а дальше пользуйтесь, как вам привычнее.
Пример использования
Теперь находясь в директории проекта можно запускать скрипт от нужной версии python не прилагая никаких действий. pyenv создает в директории файл .python-version который содержит в себе информацию о том какую версию python с каким окружение использовать для данного проекта.
Установка нескольких версий Python параллельно при помощи pyenv
Это хорошо, потому что хотя бы какой-то Python в большинстве систем доступен из коробки — бери и пользуйся. Иногда доступно сразу несколько версий интерпретатора, например, python2 указывает на устаревшую версию 2.7, python3 — на какую-нибудь стабильную версию Python 3, типа 3.6 или 3.7, а просто python указывает либо на одно, либо на другое (в последнее время предпочтение чаще отдаётся третьей версии). Для обучения или для тестирования этого может быть вполне достаточно.
С другой стороны, это плохо, потому что, как правило, предустановленный Python настолько стабилен, что уже успел зарасти мхом. В некоторых системах до сих пор предустановлен только Python 2, но даже если вам повезёт получить Python третьей версии, то наверняка он будет отставать от последней версии на пару минорных релизов. Не факт, что вам это подойдёт.
Иногда нужно иметь сразу несколько версий Python для работы над разными проектами, например, 3.7 и 3.8. В некоторых ОС нужные версии можно установить через пакетный менеджер (например, в Fedora через dnf) — из основных репозиториев или из сторонних. Но зачастую такие репозитории содержат не все релизы интерпретаторов, а лишь выбранное мейнтейнерами репозиториев подмножество.
Решение у всех этих проблем одно — нужно установить недостающие версии интерпретатора, какими бы они ни были. Этому и посвящён пост.
pyenv
pyenv — утилита, которая позволяет легко переключаться между несколькими версиями интерпретатора Python, а также устанавливать новые. Позволяет устанавливать, наверное, вообще все известные науке версии интерпретаторов Python. Работает просто и незаметно.
Установка
Установка pyenv производится простым клонированием git-репозитория.
У проекта есть умный скрипт, который скачает pyenv и его сотоварищей:
Скрипт не требует прав суперпользователя (без sudo ), потому что всё устанавливается в домашнюю директорию пользователя. Туда же будут устанавливаться и интерпретаторы. Если страшно запускать какие-то скрипты из интернета (так и должно быть), то прочитать код скрипта можно здесь.
Предыдущая команда перед завершением должна была напечатать инструкции по настройке шелла. Допустим, в случае с bash она выводит следующее:
В случае с zsh нужно будет добавить те же самые строки в
В случае с fish в связи с особенностями самого шелла инструкции отличаются:
Установим зависимости для сборки.
При установке новой версии интерпретатора через pyenv под капотом происходит сборка из исходников, поэтому для успешной установки необходимы некоторые зависимости. Полный и актуальный список для своей ОС смотрите здесь или здесь. Лучше установить всё заранее.
Перезапустим шелл и проверим установку.
Как это работает
В неё можно указать какую конкретно версию Python нужно использовать в рамках текущего сеанса. Удобно, если вам по какой-то причине понадобится сменить выбранную версию интерпретатора, например, в одном из окон терминала.
Локальная версия Python.
Глобальная версия Python.
/.pyenv/version записана глобальная версия Python, которая будет использоваться по умолчанию, если не сконфигурирована локальная версия.
Вам вряд ли придётся вручную трогать эти файлы, потому что у pyenv есть удобные команды ( pyenv local и pyenv global ), чтобы ими управлять, но знать о файлах всё равно полезно.
Использование
Установка новой версии Python
Сначала посмотрим, какие версии Python pyenv может установить:
Установим CPython 3.8.2:
Через пару минут ожидания ваш новоиспечённый Python будет готов.
Можно сразу же назначить эту версию глобальной:
Давайте в целях демонстрации установим ещё парочку интерпретаторов:
Получим список установленных версий интерпретатора:
Кстати, если нужно, то можно делать активными сразу несколько версий одновременно:
Теперь вывод версий покажет следующее:
А работать это будет вот таким образом:
Грубо говоря, та версия, которая указана первой (3.8.2), имеет приоритет и занимает все нужные ей имена. Следующие версии (2.7.18) могут занять любые оставшиеся свободные имена (в данном случае, это только имя python2 ).
А файл глобальной версии
/.pyenv/version на данный момент имеет вот такое содержимое:
Локальная версия
Давайте создадим директорию и войдём в неё:
Представим, что в этой директории мы будем разрабатывать некий проект, на котором мы хотим опробовать фишки нового Python 3.9. Сообщим об этом pyenv :
На данный момент список версий показывает следующее (удобно использовать эту команду, чтобы понять какую версию и почему pyenv активирует):
Изменения немедленно вступили в силу:
Но эта конфигурация никак не влияет на работу pyenv вне директории проекта:
Как и в случае с глобальной конфигурацией, можно локально активировать сразу несколько версий интерпретатора.
Установим IPython
Часто бывает нужно установить какой-нибудь пакет так, чтобы он тоже стал доступен из командной строки. Допустим, что нам нужно установить ipython — более удобную версию REPL Python. Сделаем это:
Программа сразу доступна, благодаря тому, что pyenv очень умный и создал новый файл-прослойку (shim) автоматически:
Возникают ситуации, когда по какой-то причине прослойка не создалась или с ней случилось что-то ещё, например, удалилась:
Не беда! Можно попросить pyenv пересоздать их все заново:
И всё работает снова:
Можно вообще добавить команду pyenv rehash в свой
/.bashrc (или аналог), чтобы при запуске шелла гарантированно иметь рабочие файлы-прослойки (shims).
Заключение
Обязательно подпишитесь на уведомления о новых постах в блоге, чтобы ничего не пропустить!
Как изменить версию Python в командной строке, если у меня установлена версия 2 Python
5 ответов
Как видите, у меня установлены как Python2, так и Python3.
Я надеюсь, вы знаете, что путь к исполняемому файлу python должен быть добавлен в переменную окружения PATH в Windows. Как вы можете видеть, путь Python2 находится выше пути Python3 в моей системе.
Как команды запускают команды?
Он ищет исполняемый файл с тем же именем в каталоге, в котором был открыт cmd, затем выполняет поиск команды в местах, указанных в переменной PATH Windows, от TOP до BOTTOM. Это означает, что он получает путь к Python2, прежде чем он сможет добраться до пути Python3. Поэтому каждый раз, когда вы вводите python в свой cmd, он запускает Python2.
Исполняемые файлы Python2 и Python3 имеют одинаковое имя в Windows, поэтому он никогда не запускает python3.
python3.bat
Создайте новый файл с помощью блокнота или чего-то еще и вставьте этот %
dp0python %*
Я не совсем понимаю, как это работает, за исключением того, что dp0 в основном запускает python из той же директории и %* передает все аргументы в исполняемый файл python. Поместите этот файл в каталог установки Python3, и, надеюсь, ваша проблема будет решена.
Надеюсь, это решит вашу проблему.
Вы должны иметь python3 также на вашем пути. Вы можете использовать python3 для запуска вашего скрипта:
Для запуска вашего скрипта с Python 3 вы можете использовать
Если вы действительно уверены, что хотите это сделать, теперь вы можете просто переместить старую символическую ссылку куда-нибудь:
И создайте новую символическую ссылку:
Теперь вы должны получить что-то вроде:
Похоже, это хорошо работает на Linux Mint 18.