Разные версии python на одной машине windows
Менеджер версий 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 в Windows?
Резюме: Вы можете запустить несколько версий Python в Windows, используя один из следующих способов: используя весь путь для выполнения кода. Создание ярлыка или символической ссылки на исполняемые файлы. Использование Pylauncher: используйте Shebang (#) в виртуальных средах Scriptrun Pylauncher. ➠ Формирование проблемы: у вас могут быть две версии Python, установленные на вашем … Как запустить несколько версий Python в Windows? Подробнее “
Резюме: Вы можете запустить несколько версий Python в Windows, используя один из следующих способов:
➠ Проблема формулировки : У вас могут быть два Версии Python установлен на вашем Окна Машина (версии 2.7 и 3.8). Теперь вы хотите запустить один из проектов на 2.6 для одного проекта и 2.5 для другого. Итак, как вы можете указать, какую версию вы хотите использовать для определенного сценария?
Таким образом, в этой статье вы узнаете, как запустить несколько версий Python в Windows с визуальными эффектами и иллюстрациями. Но прежде чем продолжить дальше, вы должны знать о различных версиях Python, установленной в вашей системе.
❖ Как проверить все установленные версии Python в Windows?
Введите следующую команду в вашей командной строке, чтобы найти версии Python, доступную в вашей системе:
Вышеуказанная команда перечисляет все версии Python, установленной в вашей системе. Если вы хотите найти разные версии, а также путь к каждой установленной версии, используйте следующую команду:
Следующие графические иллюстрации помогут вам четко понять вышеуказанные команды.
Как только вы проверили версии Python, установленные в вашей системе, вы можете использовать один из упомянутых ниже способов для выполнения определенного сценария в определенной версии.
❖ Метод 1: Использование пути
Чтобы преодолеть этот барьер, вы должны явно вызывать один или оба из приложений, использующих их путь. Например, как вы можете видеть ниже, у меня есть две версии Python, установленной в моей системе.
❖ Способ 2: Создание ярлыка или символической ссылки
➥ Создание ярлыка: Если вы хотите избежать использования всего пути, вы можете создать ярлык для каждого человека python.exe Файл и переименуйте их как Python27 и Python38. Теперь вы можете запустить каждую версию, используя соответствующие ярлыки напрямую.
Чтобы создать ярлыки, выполните заданные шаги:
➥ Создание символической ссылки: Кроме того, вы также можете символическую ссылку на соответствующие исполняемые файлы и переименовать их. Затем вы можете выполнить свой код с помощью Python27, то есть имя, которое было дано вами.
Примечание: Поместите ярлыки где-то, что входит в путь, чтобы их можно было легко вызвать.
После создания ярлыка и ссылки вы можете легко вызвать определенную версию, используя имя, указанное вами, как показано ниже:
❖ Метод 3: Использование Python Launcher
Вы можете использовать Pylauncher А затем используйте один из следующих подходов для выполнения вашего сценария в версии, которую вы хотите.
Примечание: Если у вас есть Python 3.3 и выше, нет необходимости устанавливать его вручную, потому что он уже доступен с более новыми версиями Python.
➥ Подход 1: используйте Shebang (#) в сценарии
Вы можете просто использовать линию Shebang в своем сценарии, чтобы упомянуть версию, в которой вы хотите выполнить скрипт.
#! C: \ [Путь к Python 2.7] \ python.exe – Для выполнения скриптов с Python 2.7. #! C: \ [Путь к Python 3.8] \ python.exe – Для выполнения скриптов с Python 3.8.
Пример: Следующее изображение показывает, как вы можете использовать Shebang в вашем скрипте и выполнить его непосредственно в вашей командной строке.
➥ Подход 2: запустить команду Pylauncher
❖ Способ 4: Использование виртуальных сред
Другой подход к запуску различных версий Python в Windows – это установить Виртуальский и создать две независимые виртуальные среды для соответствующих версий Python.
➥ Синтаксис:
➥ Пример:
Как только виртуальные среды были созданы, вы можете активировать Конкретная среда для использования этой версии, как показано ниже:
Деактивировать это использовать команду: C: \ Venvs \ 3.8 \ Сценарии \ деактивировать
❖ Как выбрать версию Python в Pycharm?
Если вы используете Пычарм Чтобы выполнить свой код, вы можете сделать это с помощью следующих шагов:
Примечание: В Pycharm 2019.1 и выше, есть новая особенность, известная как Переводчик в строке состояния Отказ Эта функция позволяет переключаться между переводчиками Python и проверяя, какая версия Python вы используете намного проще и удобно для пользователя. Эта функция была показана на изображении ниже (выделено красным в правом нижнем углу).
Заключение
Мы дойдем до конца этого урока, и я надеюсь, что это помогло вам. Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных статей.
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Установка нескольких версий 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 в Windows
У меня было две версии Python, установленные на моей машине (версии 2.6 и 2.5). Я хочу запустить 2.6 для одного проекта и 2.5 для другого.
Как я могу указать, что я хочу использовать?
Я работаю над Windows XP SP2.
11 ответов
то, что это делает под Windows, является тралом переменной среды %PATH%, проверяя исполняемый файл, либо пакетный файл (.летучая мышь), командный файл (.cmd) или какой-либо другой исполняемый файл для запуска, который соответствует данному имени. Когда он находит правильный файл для запуска, он делает это.
теперь, если вы установили две версии python 2.5 и 2.6, в пути будут оба их каталога, что-то вроде PATH=c:\python.5;c:\python.6 но Windows перестанет изучать путь, когда найдет совпадение.
другой альтернативой является создание ярлыка для соответствующего python.exe, вызывающий один из них python25, а другой python26; вы можете просто запустить python25 в командной строке.
добавление еще двух решений проблемы:
и вместо выполнить команда pylauncher ( py ) specyfing какую версию Python вы хотите;
затем вы можете активировать первый и работать с Python 2.5, как это
c:\venvs.5\activate
и когда вы хотите переключиться на Python 2.6 вы
из Python 3.3, есть официальный Python launcher для Windows (http://www.python.org/dev/peps/pep-0397/). Теперь, вы можете использовать #!pythonX чтобы определить нужную версию интерпретатора также В Windows. Подробнее в моем другом комментарии или прочитайте PEP 397.
согласно @alexander вы можете сделать набор символических ссылок, как показано ниже. Поместите их куда-нибудь, что включено в ваш путь, чтобы их можно было легко вызвать
покуда c:\bin или где бы вы их ни разместили, теперь вы можете пойти
при установке Python он не будет перезаписывать другие установки других основных версий. Итак, установка Python 2.5.x не будет перезаписывать Python 2.6.x, хотя установка 2.6.6 перезапишет 2.6.5.
так что вы можете просто установить его. Затем вы называете Python версии вы хотите. Например:
для Python 2.5 на windows и
для Python 2.6 в windows или
on окна Unix (включая Linux и OS X).
при установке на Unix (включая Linux и OS X) вы получите общий python команда установлена, которая будет последней, которую вы установили. Это в основном не проблема, так как большинство скриптов будут явно вызывать /usr/local/bin/python2.5 или что-то, чтобы защитить от этого. Но если вы не хотите этого делать, и вы, вероятно, не можете установить его следующим образом:
обратите внимание на «altinstall», что означает, что он установит его, но он будет не заменить
все они находятся в системной папке, выберите версию, которую вы хотите запустить
1) Скачать последние версии python от python.org/downloads выбрав соответствующую версию для вашей системы.
2) Запустите программу установки и выберите добавить python 3.x к пути чтобы установить путь автоматически в python 3 (вам просто нужно щелкнуть флажок). Для python 2 Откройте установщик python 2, Выберите любые предпочтения, которые вы хотите, но просто не забудьте установить добавить python.exe в путь до будет установлен на локальном жестком диске, теперь просто нажмите кнопку Далее и дождитесь завершения установки.
3) когда обе установки будут завершены. щелкните правой кнопкой мыши на моем компьютере—перейти к свойствам—выберите расширенные Системные настройки—перейти к переменным среды—Нажмите кнопку Создать в разделе системные переменные и добавить новый системная переменная С переменной имя as PY_PYTHON и значение переменной до 3. Теперь нажмите на OK и вы должны быть сделаны.
4) Теперь, чтобы проверить это, откройте командная строка. После того, как вы там типа python или py, Он должен открыть питон3.
Если ничего из этого не работает, перезагрузите компьютер, и если проблема все еще сохраняется, удалите все и повторите шаги.
использование пакетного файла для переключения, легко и эффективно в windows 7. Я использую это:
В разделе пользовательские переменные
добавлен %pathpython% в переменную среды path
удалены все ссылки на Python пути
В разделе системные переменные
Я создал пакетные файлы для каждой установки python (пример для 3.4 x64
чтобы переключаться между версиями, я выполняю пакетный файл в режиме администратора.
Так Я полностью контролирую это.
с помощью Редактор Быстрой Среды вы можете нажать на верхнюю часть каталога нужной установки Python. Например, чтобы запустить python из c:\Python27 каталог, убедитесь, что c:\Python27 каталог находится перед или поверх c:\Python36 каталог в переменной среды Path. По моему опыту, выполняется первый исполняемый файл python, найденный в среде Path. Например, у меня установлен MSYS2 с Python27 и так как я добавил C:\MSYS2 к путь до C:\Python36 питон.exe с C:\MSYS2. папка выполняется.
Работа с несколькими версиями Python и PIP?
Есть ли способ заставить pip хорошо играть с несколькими версиями Python? Например, я хочу использовать pip для явной установки вещей либо на мой сайт 2.5, либо на мой сайт 2.6.
Например, с easy_install я использую easy_install-2. <5,6>.
18 ответов
Предыдущий ответ, оставленный для потомков:
Начиная с версии 0.8, Pip поддерживает pip-
РЕДАКТИРОВАТЬ : pip изменил свою схему на использование pipVERSION вместо pip-VERSION в версии 1.5. Вы должны использовать следующее, если у вас есть pip >= 1.5 :
Обратитесь к https://github.com/pypa/pip/pull/1053 для получения дополнительной информации.
Это установит пакет для этой версии Python.
Полная команда в качестве примера будет:
Если вы хотите получить более подробную информацию, чтобы установить конкретную версию пакета на определенную версию python, используйте == (версия) после пакета. В качестве примера,
У меня был установлен Python 2.6 по умолчанию (Amazon EC2 AMI), но мне нужно было python2.7 плюс некоторые внешние пакеты для моего приложения. Предполагая, что вы уже установили python2.7 вместе со стандартным python (2.6 в моем случае). Вот как установить pip и пакеты для нестандартного python2.7
Установите pip для вашей версии Python:
Используйте конкретную версию pip для установки пакетов:
(также могут быть доступны соответствующие команды pip)
Вот как установить пакеты для разных версий, которые установлены одновременно linux, mac, posix :
Например, если вы устанавливаете другие версии (например, 3.5) по умолчанию и хотите установить pip для python 2.7:
Недавно я сам столкнулся с этой проблемой и обнаружил, что у меня не получается получить нужную оценку для Python 3 в моей системе Linux, в которой также есть Python 2.
Сначала вы должны убедиться, что у вас установлен pip для вашей версии Python:
Затем, чтобы установить пакеты для одной версии Python или другой, просто используйте следующее для Python 2:
Установка нескольких версий Python и соответствующих пакетов.
Версия Python на той же машине Windows: 2.7, 3.4 и 3.6
Установка всех 3 версий Python :
PATH для всех 3 версий Python :
Проверено на наличие командной строки со всеми версиями:
Установка пакетов отдельно для каждой версии
Большинство ответов здесь касаются этой проблемы, но я хочу добавить кое-что, что меня постоянно смущало в отношении создания альтернативной установки python в /usr/local на CentOS 7. Когда я устанавливал там, казалось, что pip работал так как я мог бы использовать pip2.7 install и он установил бы модули. Однако я не мог понять, почему моя недавно установленная версия python не видела того, что я устанавливал.
В CentOS 7 оказывается, что в папке /usr/bin уже есть python2.7 и pip2.7. Чтобы установить pip для вашего нового дистрибутива Python, вам нужно специально указать sudo перейти на /usr/local/bin
Вы можете быть еще более конкретным и запросить точную под-версию Python:
Чтобы получить список всех установленных версий Python, доступных через панель запуска, запустите:
Кроме того, вы можете запустить нужный исполняемый файл Python напрямую:
Pip также является пакетом Python. Так что самый простой способ установить модули для конкретной версии Python будет ниже
Теперь у вас есть pip2.7:
sudo pip2.7 install boto
Тест (в моем случае мне нужно было «boto»):
Запустите следующие команды:
/path/to/python2. <5,6>/path/to/pip install PackageName не работает?
Это, вероятно, совершенно неправильная вещь (я нуб питона), но я просто вошел и отредактировал файл pip