Несколько версий Python на одной машине?

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

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

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

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

В Linux вы можете использовать трюк #!, чтобы указать, какую версию вы хотите использовать script.

Ответ 3

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

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

Ответ 4

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

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

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

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

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

# Install Python plugin for asdf:
asdf plugin-add python

# List all available Python interpreters:
asdf list-all python

# Install the Python interpreters that you need:
asdf install python 3.7.4
asdf install python 3.6.9
# etc...

# If you want to define the global version:
asdf global python 3.7.4

# If you want to define the local (project) version:
# (this creates a file .tool-versions in the current directory.)
asdf local python 3.7.4

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

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

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

$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

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

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

Распакуйте загруженный пакет на место. (замените 'x на вашу загруженную версию)

$ sudo tar xzf Python-x.x.x.tgz

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

$ cd Python-x.x.x
$ sudo ./configure
$ sudo make altinstall

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

$ pythonX.X -V
Python x.x.x
$ which pythonX.X
/usr/local/bin/pythonX.X

# Pip is now available for this version as well:
$ pipX.X -V
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X)

Ответ 5

Лучший способ, который сработал для меня, это использование pyenv!

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

#Install pyenv
brew update
brew install pyenv

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

python --version 

Выход:

Python 3.6.4

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

pyenv install -l

Давайте возьмем 3.7.3:

pyenv install 3.7.3

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

pyenv shell 3.7.3

Теперь беги

python --version

Выход:

Python 3.7.3

Unset:

pyenv shell --unset

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

Ответ 6

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

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

Ответ 7

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

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

сначала установите навигатор anaconda, а затем создайте окружение.

см. здесь помощь по управлению средами

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/

Вот видео, чтобы сделать это с Конда

https://youtu.be/EGaw6VXV3GI