Несколько версий Python Linux

Обновлено: 18.05.2024

Управление несколькими версиями Python в системе Linux — непростая задача, особенно для новичков. Иногда становится еще хуже, когда вы хотите разрабатывать и запускать несколько проектов с разными версиями Python на одном сервере. Однако этого не должно быть, если вы используете pyenv.

Что такое Пьенв?

Pyenv – это простой, мощный и кроссплатформенный инструмент для управления несколькими версиями Python в системах Linux, который использовался для.

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

Как работает pyenv?

Обычно для запуска всех ваших приложений используется одна версия Python по умолчанию, если только вы явно не укажете версию, которую хотите использовать в приложении. Но pyenv реализует простую концепцию использования прокладок (облегченных исполняемых файлов) для передачи вашей команды правильной версии Python, которую вы хотите использовать, когда у вас установлено несколько версий.

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

В этой статье мы покажем, как установить последнюю версию pyenv в Linux. Мы также продемонстрируем первые три варианта использования, перечисленные выше.

Как установить Pyenv в Linux

<р>1. Сначала установите все необходимые пакеты для установки различных версий Python из исходных кодов, используя следующую команду в соответствующем дистрибутиве Linux.

<р>2. Затем возьмите последнее исходное дерево pyenv из репозитория Github и установите его по пути $HOME/.pyenv, используя следующую команду.

<р>3. Теперь вам нужно установить переменную среды PYENV_ROOT так, чтобы она указывала на путь, по которому вы установили pyenv, и экспортировать его. Затем добавьте $PYENV_ROOT/bin в PATH, чтобы запустить утилиту командной строки pyenv, как и любые другие системные команды.

Вам также необходимо включить прокладки и автозаполнение, добавив pyenv init в свою оболочку. Выполните все эти действия в файле запуска bash $HOME/.bashrc, как показано ниже.

Скопируйте и вставьте следующие строки в конец этого файла.

<р>4. После внесения вышеуказанных изменений вы можете использовать исходный файл $HOME/.bashrc или перезапустить оболочку, как показано ниже.

Как установить несколько версий Python в Linux

<р>5. На этом этапе вы должны быть готовы начать использовать pyenv. Перед установкой какой-либо версии Python вы можете просмотреть все доступные версии с помощью этой команды.

Список нескольких Версии Python

<р>6. Теперь вы можете установить несколько версий Python, например, через pyenv.

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

<р>7. Чтобы получить список всех версий Python, доступных для pyenv, выполните следующую команду. Будут показаны только версии, установленные через сам pyenv.

Список установленных Версии Python

<р>8. Вы можете проверить глобальную версию Python с помощью следующей команды, к этому моменту версия по умолчанию должна быть установлена ​​системой, а не pyenv.

Вы можете установить глобальную версию Python с помощью команды pyenv.

Set Global Версия Python» ширина = «502» высота = «268» /><br /></p>
<р>9. Теперь вы можете установить локальную версию Python для каждого проекта, например, если у вас есть проект, расположенный в $HOME/python_projects/test, вы можете установить его версию Python с помощью следующей команды.</p>
<p> <img class=

<р>10. Pyenv управляет виртуальными средами с помощью подключаемого модуля pyenv-virtualenv, который автоматизирует управление средами virtualenvs и conda для Python в Linux и других UNIX-подобных системах.

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

<р>11.Теперь мы создадим тестовую виртуальную среду с именем venv_project1 в рамках проекта с именем project1 следующим образом.

Создать Виртуальная среда

<р>12. Теперь, когда вы перечисляете все версии Python, ваши виртуальные среды, а также их локальные версии Python также должны быть перечислены, как показано на снимке экрана.

Список версий Python

<р>13. Чтобы активировать виртуальную среду, например venv_project1, введите следующую команду.

Примечание. При первом использовании последней версии подключаемого модуля pyenv-virtualenv вы можете получить приведенное ниже сообщение.

Добавьте строку export PYENV_VIRTUALENV_DISABLE_PROMPT=1 в свой файл $HOME/.bashrc, куда вы добавили другие конфигурации pyenv, и создайте файл для имитации выделенного поведения.

<р>14. Чтобы деактивировать активированную виртуальную среду, выполните эту команду.

Для получения дополнительной информации вы можете перечислить все команды pyenv, используя следующую команду.

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Поддержите нас

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

Курсы по Python для начинающих

Интеграция PyDev с Eclipse

 Платформа Python и модуль ключевых слов

 Установите Python IDLE в Linux

Изучайте Python Оператор идентификации

Изучайте Python Системный модуль

13 мыслей о «Pyenv — установка нескольких версий Python для конкретного проекта»

Строка eval «$(pyenv init -)» в приведенном ниже фрагменте кода должна быть изменена на eval «$(pyenv init –path)», чтобы добавить .shims в начало переменной PATH

Эта ссылка появилась первой в моем поиске в Google по установке и использованию pyenv в CentOS, и я обнаружил ошибку в статье.

Путь должен иметь:

Спасибо за размещение этой полезной статьи в Интернете.

Указанные в этой статье пакеты Debian были неполными; Я получал «модуль не найден: ctypes» при попытке установить Python 3.7.3 на MX Linux 18.2 — Continuum.

Спасибо, что поделились этим, мы благодарны.

Установил 3.6.8, но очень хотел именно pip3. pip --version и pip3 --version дают одинаковый результат:

pip 18.1 из /home/searles/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip (python 3.6)

поэтому осталось только гадать, правильно ли это.

Затем, наконец, хотел «python3.6 -m pip3 install typing», но это дает «Нет модуля с именем pip3»!

Выполните эту команду, чтобы проверить, доступна ли нужная вам версия:

Затем установите его, как показано в руководстве.

Отличное руководство по установке pyenv. По моему скромному мнению — просто идеальный уровень детализации и контекста вместе с командами установки. Большое спасибо!

В команде на 5 шаге опечатка. Это должно быть «pyenv install -l» вместо «pynev install -l».

Спасибо, что сообщили нам, исправлено в описании..

piton, это хорошо, если вам нравится что-то делать, но я предпочитаю Qt и C++, возможно, это просто причина, по которой я беспокоюсь об этичности этого, в конце концов…

by, живите долго и процветайте…..

Возможно, вы захотите добавить libffi-dev в качестве одного из необходимых пакетов для установки Python 3.7.

Большое спасибо за упоминание об этом. Мы добавим его.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Есть ли где-нибудь на веб-сайте Python официальная документация о том, как установить и запустить несколько версий Python на одном компьютере в Linux?

Я могу найти огромное количество сообщений и ответов в блогах, но я хочу знать, существует ли "стандартный" официальный способ сделать это?

Или все зависит от ОС?


11 ответов 11

Я думаю, что это полностью независимо. Просто установите их, тогда у вас есть команды, например. /usr/bin/python2.5 и /usr/bin/python2.6. Свяжите /usr/bin/python с тем, который вы хотите использовать по умолчанию.

В любом случае все библиотеки находятся в отдельных папках (названных в честь версии).

Если вы хотите скомпилировать версии вручную, это из файла readme исходного кода Python:

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

В системах Unix и Mac, если вы собираетесь установить несколько версий Python с использованием одного и того же префикса установки (аргумент --prefix в скрипте configure), вы должны позаботиться о том, чтобы ваш основной исполняемый файл Python не перезаписывается при установке другой версии. Все файлы и каталоги, установленные с помощью «make altinstall», содержат основную и дополнительную версии и, таким образом, могут жить бок о бок. «make install» также создает $/bin/python3, который ссылается на $/bin/pythonX.Y. Если вы собираетесь установить несколько версий, используя один и тот же префикс, вы должны решить, какая версия (если есть) является вашей «основной» версией. Установите эту версию с помощью «make install». Установите все остальные версии с помощью «make altinstall».

Например, если вы хотите установить Python 2.5, 2.6 и 3.0, причем 2.6 является основной версией, вы должны выполнить «make install» в каталоге сборки 2.6. и "сделать altinstall" в остальных.


Есть ли правильный способ обмена библиотеками между версиями? Скажем, у меня есть MySQLdb для 2.6, затем установлен 2.7. как сделать MySQLdb доступным и для версии 2.7?

Вся информация, которую вы предоставляете, предназначена для Unix/Linux и Mac OS, поэтому явно не «полностью независима» от ОС, как спрашивает ОП. Для Windows процесс совсем другой, но такой же простой.

В Windows они устанавливаются в отдельные папки "C:\python26" и "C:\python31", но исполняемые файлы имеют одно и то же имя "python.exe".

Я создал еще одну папку "C:\python", содержащую "python.bat" и "python3.bat", которые служат оболочками для "python26" и "python31" соответственно, и добавил "C:\python" в переменная среды PATH.

Это позволяет мне вводить python или python3 в моих оболочках .bat Python, чтобы запустить ту, которую я хочу.

Не буду голосовать за этот ответ только потому, что он очень специфичен для Windows, а вопрос был связан с Linux, в остальном отличная информация.

Теперь вы можете просто запустить py -3.4 или py -2.7, и программа py (в C:\Windows ) выберет этот интерпретатор Python (при условии, что он установлен).

Обновление 2019: использование asdf

Сейчас я предлагаю использовать asdf для установки различных версий интерпретаторов Python рядом друг с другом.

Примечание 1. asdf работает не только с Python, но и со всеми основными языками.

Примечание 2. asdf отлично работает в сочетании с популярными менеджерами пакетов, такими как pipenv и поэзия.

Если у вас установлен asdf, вы можете легко загрузить/установить новые интерпретаторы Python:

Старый ответ: установите Python из исходного кода

Если вам нужно установить несколько версий Python (рядом с основной) на Ubuntu / Mint: (должно работать аналогично на других Unix.)

1) Установите необходимые пакеты для компиляции исходного кода

2) Загрузите и извлеките нужную версию Python

Загрузите исходный код Python для Linux в виде архива и переместите его в /usr/src .

Извлеките загруженный пакет на место. (замените "x" на загруженную версию)

3) Скомпилируйте и установите исходный код Python

Ваша новая корзина Python теперь находится в /usr/local/bin . Вы можете протестировать новую версию:


Я использую Mac, и лучший способ, который мне помог, это использование pyenv!

Приведенные ниже команды предназначены для Mac, но очень похожи на Linux (см. ссылки ниже)

Допустим, у вас на Mac установлена ​​основная версия Python 3.6:

Теперь установите python 3.7, сначала перечислите все

Обязательно запустите это в Терминале (добавьте в ~/.bashrc или ~/.zshrc):

Теперь давайте запустим его только на открытом терминале/оболочке:

Теперь бегите

И не менее важно отключить его в открывшейся оболочке/iTerm:

Вы также можете запускать его глобально или локально


Как установить разные версии Python действительно зависит от ОС.

Однако, если вы используете Linux, вы можете использовать такой инструмент, как pythonbrew или pythonz, который поможет вам легко управлять различными версиями и переключаться между ними.


@Roland pyenv подойдет для этого. Из readme по ссылке, опубликованной выше: > [Позволяет] изменить глобальную версию Python для каждого пользователя.

Для менеджера пакетов, который может устанавливать несколько версий Python и управлять ими, это хороший выбор:

    - возможность установки и управления только версиями python - возможность установки и управления множеством разных языков

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

Этот недостаток заключается в том, что по умолчанию они устанавливаются на уровне пользователя (внутри вашего домашнего каталога) и требуют небольшой настройки на уровне пользователя — вам нужно будет отредактировать файлы ~/.profile и ~/ .bashrc или подобные файлы. Это означает, что их непросто использовать для глобальной установки нескольких версий Python для всех пользователей. Для этого вы можете установить из исходного кода вместе с существующей версией Python ОС.

Для этого метода вам потребуются привилегии root.

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

/usr/local — это место, указанное системным администратором для установки общего (общесистемного) программного обеспечения, поэтому его подкаталоги — хорошее место для загрузки исходного кода Python и его установки. См. раздел 4.9 Стандарта иерархии файлов Linux Foundation.

Установите все зависимости сборки. В системах на основе Debian используйте:

Выберите, какую версию Python вы хотите установить. См. список на странице выпусков исходного кода Python.

Загрузите и разархивируйте файл в /usr/local/src , заменив X.X.X ниже версией Python (например, 3.8.2 ).

Перед сборкой и установкой установите переменную среды CFLAGS с необходимыми флагами компилятора C (см. документацию GNU make). Обычно это не требуется для общего использования, но если, например, вы собираетесь создать плагин uWSGI с этой версией Python, вы можете установить флаги -fPIC со следующим:

Измените рабочий каталог на разархивированный исходный каталог python и настройте сборку. Вы, вероятно, захотите использовать параметр --enable-optimizations в команде ./configure для оптимизации на основе профиля. Используйте --prefix=/usr/local для установки в соответствующие подкаталоги ( /usr/local/bin , /usr/local/lib и т. д.).

Создайте проект с помощью make и установите с помощью make altinstall, чтобы избежать переопределения каких-либо файлов при установке нескольких версий. См. предупреждение на этой странице документации по сборке Python.

Тогда вы сможете запускать новые версии Python и pip с помощью pythonX.X и pipX.X (т. е. python3.8 и pip3.8 ). Обратите внимание: если младшая версия вашей новой установки совпадает с версией ОС (например, если вы устанавливали python3.8.4, а ОС использовала python3.8.2), вам нужно будет указать полный путь (/usr/local /bin/pythonX.X ) или задайте псевдоним для использования этой версии.

Как установить несколько версий Python в Ubuntu?

Как установить разные версии Python?

  1. python 2.7: выполните следующую команду: sudo apt install python-minimal. …
  2. python 3.5: выполните следующую команду: sudo apt install python3. …
  3. python 3.6: выполните следующие команды: sudo add-apt-repository ppa:deadsnakes/ppa. …
  4. питон 3.7: …
  5. питон 3.8:

Как установить несколько версий Python?

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

  1. Перейдите на страницу загрузки Python.
  2. Загрузить версию 3.4. 1 установочный пакет.
  3. Установите его и примите значения по умолчанию. (Это важно. …
  4. Загрузить версию 2.7. 7. установочный пакет.
  5. Установите его и на этот раз НЕ принимайте значения по умолчанию. В частности, удалите параметр «Зарегистрировать расширения» при установке.

Может ли быть установлено 2 версии Python?

По умолчанию Python устанавливается в каталог со встроенным номером версии, например Версия Python 2.7 будет установлена ​​по адресу C:Python27 , так что вы можете иметь несколько версий Python в одной системе без конфликтов.Конечно, только один интерпретатор может быть приложением по умолчанию для типов файлов Python.

Как установить новую версию Python в Linux?

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

Могут ли Python3 и Python 2 сосуществовать?

После того, как вы сможете полностью работать с Python 3, вы захотите убедиться, что ваш код всегда работает как с Python 2, так и с Python 3. Tox, вероятно, лучший инструмент для запуска ваших тестов с несколькими интерпретаторами Python. … На данный момент ваша кодовая база совместима как с Python 2, так и с Python 3 одновременно.

Как узнать, установлен ли Python в Linux?

Проверить версию Python из командной строки/скрипта

  1. Проверьте версию Python в командной строке: –version , -V , -VV.
  2. Проверьте версию Python в скрипте: sys , platform. Различные информационные строки, включая номер версии: sys.version. Кортеж номеров версий: sys.version_info.

Поддерживает ли Python 3.9 TensorFlow?

Для поддержки Python 3.9 требуется TensorFlow 2.5 или более поздней версии. Для поддержки Python 3.8 требуется TensorFlow 2.2 или более поздней версии.

Как узнать, установлено ли несколько версий Python?

Сначала проверьте, какие версии Python у вас есть:

Какую версию Python мне выбрать?

Стандартно рекомендуется использовать команду python3 или python3. 7, чтобы выбрать конкретную версию. Средство запуска py.exe автоматически выберет самую последнюю версию Python, которую вы установили. Вы также можете использовать такие команды, как py -3.7, чтобы выбрать конкретную версию, или py –list, чтобы увидеть, какие версии можно использовать.

Как использовать Python 2.7 вместо 3?

В качестве альтернативы вы можете заменить символическую ссылку «python» в /usr/bin, которая в настоящее время ссылается на python3, на ссылку на требуемый python2/2. х исполняемый файл. Затем вы можете просто назвать его так же, как в Python 3. Вы можете использовать псевдоним python="/usr/bin/python2.

Как узнать, где установлен Python в Linux?

Есть ли в Python 2.7 функция PIP?

PIP автоматически устанавливается вместе с Python 2.7. 9+ и Python 3.4+ и поставляется с виртуальными средами virtualenv и pyvenv. Прежде чем устанавливать PIP в Windows, убедитесь, что PIP уже установлен.

Как получить pip3 в Linux?

Чтобы установить pip3 в Ubuntu или Debian Linux, откройте новое окно терминала и введите sudo apt-get install python3-pip . Чтобы установить pip3 в Fedora Linux, введите sudo yum install python3-pip в окне терминала. Вам потребуется ввести пароль администратора для вашего компьютера, чтобы установить это программное обеспечение.

Как установить определенную версию модуля Python?

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

Доминик Фрейзер

Доминик Фрейзер

Как управлять несколькими версиями Python и виртуальными средами

Дополнение от января 2019 г. Если вы возвращаетесь к этому блогу после обновления до macOS Mojave, ознакомьтесь с этой проблемой на GitHub, чтобы узнать о решении распространенной проблемы pyenv «zlib недоступен».

Прежде чем мы начнем, давайте кратко рассмотрим термины, использованные в заголовке:

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

Здесь мы рассмотрим три разных инструмента для работы с ними и когда каждый из них может вам понадобиться. Давайте рассмотрим варианты использования:

  • венв/пивенв
  • пьенв
  • pyenv-virtualenv

Если вы используете одну версию Python, скажем, версию 3.3+, и хотите управлять разными виртуальными средами, то venv — это все, что вам нужно.

Если вы хотите использовать несколько версий Python 3.3+, с виртуальными средами или без них, продолжайте читать о pyenv .

Если вы также хотите работать с Python 2, обратите внимание на инструмент pyenv-virtualenv.

Начиная с Python 3.3+ включен пакет venv. Он идеально подходит для создания облегченных виртуальных сред.

Вплоть до Python 3.6 скрипт pyvenv также был включен в качестве оболочки вокруг venv , но он устарел. Он будет полностью удален в Python 3.8. Точно такая же функциональность доступна при использовании venv, и любая существующая документация должна быть обновлена. Кому интересно, вы можете прочитать о причинах обесценивания pyvenv .

venv используется для создания новой среды с помощью команды терминала:

и отключается просто:

Если вам нужно полностью удалить среду после ее деактивации, вы можете запустить:

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

Если ридер использует версию, отличную от 3.6, команда не будет выполнена успешно, и это будет указано в сообщении об ошибке. Однако любая версия исправления (например, 3.6.4) будет работать.

Когда среда активна, любые пакеты могут быть установлены в нее через pip как обычно. По умолчанию вновь созданная среда не будет включать какие-либо пакеты, уже установленные на машине. Поскольку сам pip не обязательно будет установлен на машине. Рекомендуется сначала обновить pip до последней версии, используя pip install --upgrade pip .

Проекты обычно имеют файл requirements.txt, в котором указаны его зависимости. Это позволяет команде быстрого доступа pip install -r requirements.txt быстро установить все пакеты во вновь созданную виртуальную среду. Они будут существовать только в виртуальной среде. Он будет недоступен после деактивации, но сохранится при повторной активации.

Если вам не нужно использовать дополнительные версии самого Python, это все, что вам нужно для создания изолированных виртуальных сред для конкретных проектов.

пьенв

Если вы хотите использовать несколько версий Python на одном компьютере, то pyenv — это широко используемый инструмент для установки и переключения между версиями. Это не следует путать с ранее упомянутым устаревшим скриптом pyvenv. Он не поставляется вместе с Python и должен быть установлен отдельно.

Документация pyenv содержит отличное описание того, как он работает, поэтому здесь мы просто рассмотрим, как его использовать.

Во-первых, нам нужно установить его. Если вы используете Mac OS X, мы можем сделать это с помощью Homebrew, в противном случае рассмотрите другие варианты установки.

Затем добавьте следующее в конец сценариев оболочки, чтобы позволить pyenv автоматически менять версии для вас:

Для этого откройте используемый сценарий оболочки через $ ~/.zshrc , $ ~/.bashrc или $ ~/.bash_profile и скопируйте и вставьте указанную выше строку.

Запуск версий pyenv покажет, какие версии Python установлены в данный момент, со знаком * рядом с той, которая используется в данный момент. Версия pyenv показывает это напрямую, и для проверки можно использовать python --version.

Чтобы установить дополнительную версию, например 3.4.0 , просто используйте pyenv install 3.4.0 .

pyenv смотрит в четырех местах, чтобы решить, какую версию Python использовать, в порядке приоритета:

  1. Переменная среды PYENV_VERSION (если указана). Вы можете использовать команду оболочки pyenv, чтобы установить эту переменную среды в текущем сеансе оболочки.
  2. Файл версии .python для конкретного приложения в текущем каталоге (если он есть). Вы можете изменить файл .python-version текущего каталога с помощью локальной команды pyenv.
  3. Первый файл версии .python, найденный (если есть) путем поиска в каждом родительском каталоге, пока не будет достигнут корень вашей файловой системы.
  4. Файл глобальной версии. Вы можете изменить этот файл с помощью глобальной команды pyenv. Если файл глобальной версии отсутствует, pyenv предполагает, что вы хотите использовать «системный» Python. (Другими словами, любая версия будет работать, если pyenv не указан в вашем PATH.)

При настройке нового проекта, который должен использовать Python 3.6.4, pyenv local 3.6.4 будет запускаться в его корневом каталоге. Это позволит установить версию и создать файл .python-version, чтобы компьютеры других участников могли его использовать.

pyenv и venv

При работе с Python 3.3+ мы теперь знаем, как устанавливать различные версии Python и переключаться между ними, а также как создавать новые виртуальные среды.

В качестве примера предположим, что мы создавали проект, который должен был использовать Python 3.4.

Сначала мы могли установить нашу локальную версию, используя pyenv local 3.4.0 .

Если мы затем запустим python3 -m venv example-project, новая виртуальная среда будет настроена в example-project с использованием нашего локально включенного Python 3.4.0.

Активируем с помощью исходного кода example-project/bin/activate и можем приступать к работе.

Далее мы могли бы опционально задокументировать, что соавтор должен использовать python3.4 -m venv . Это означает, что даже если соавтор не использовал pyenv, команда python3.4 выдаст ошибку, если его основная и вспомогательная версии (3 и 4) не совпадают, как мы предполагали.

В качестве альтернативы мы могли бы просто указать, что должна использоваться версия 3.4.0, и указать python3 -m venv . Если мы считаем, что любая версия выше 3.4 является приемлемой, то мы также можем использовать python3 вместо python3.4 , как если бы соавтор использовал версию 3.6, иначе он также получил бы ошибку.Это решение зависит от проекта.

pyenv-virtualenv

pyenv можно использовать для установки версий Python 2 и 3. Однако, как мы видели, venv ограничен версиями Python выше 3.3.

pyenv-virtualenv – это инструмент для создания виртуальных сред, интегрированный с pyenv, который работает со всеми версиями Python. По-прежнему рекомендуется использовать официальную версию Python, где это возможно. Но если, например, вы создаете виртуальную среду на основе 2.7.13, то это дополняет pyenv.

Он также хорошо работает со средами Anaconda и Miniconda conda, если вы уже их используете. Также существует инструмент под названием virtualenv. Здесь это не рассматривается, но есть ссылка в конце.

После установки pyenv его можно установить с помощью Homebrew (или альтернатив) следующим образом:

Далее в вашем .zshrc , .bashrc или .bash_profile (в зависимости от того, какую оболочку вы используете) добавьте следующее внизу:

Это позволяет pyenv автоматически активировать и деактивировать среды при перемещении каталогов.

Чтобы создать новую виртуальную среду, используйте:

Существующие среды можно перечислить с помощью:

Активируется/деактивируется с помощью:

На момент написания при использовании активации будет отображаться предупреждение об изменении, которое будет удалено из будущей версии. Это ожидаемо и относится только к (env-name), отображаемому в вашей оболочке, а не к использованию самой команды активации.

Установка требований выполняется так, как описано в venv . В отличие от venv, для удаления среды не требуется команда rm -r, существует команда удаления.

Заключительные мысли

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

Мы также можем увидеть причину использования набора, поскольку не всем разработчикам потребуются все три.

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

Читайте также: