Установка / Использование любой версии python в Linux

В этом поможет скрипт pyenv-installer, используем следующим образом, запускаем:

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

После запуска, добавляем в файл ~/.bashrc стоки:


export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Перезапускаем консоль, проверяем версии:

pyenv install -l | grep 2.6
  2.6.6
  2.6.7
  2.6.8
  2.6.9
  3.2.6

Устанавливаем необходимые библиотеки:

yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel mysql-devel

Устанавливаем требуемую:

pyenv install 2.6.6
Downloading Python-2.6.6.tgz...
Installing Python-2.6.6...
...
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
Installing pip from https://bootstrap.pypa.io/get-pip.py...
Installed Python-2.6.6 to /home/user/.pyenv/versions/2.6.6

Смотрим текущую:

python -V
Python 2.7.5

Меняем на загруженную:

pyenv local 2.6.6

Смотрим:

python -V
Python 2.6.6

Доп. инфо
На данный момент в Fedora используется 2.7.5, создать окружение с python версии 3, можно так же командой:

virtualenv -p python3 test

Ооо) отличная тема, ибо извечный вопрос версионности в питоне :smile3:

$ pyenv install -l | grep 2.6
No command 'pyenv' found, did you mean:
Command 'pyvenv' from package 'python3-venv' (universe)
Command 'p7env' from package 'libnss3-tools' (universe)
pyenv: command not found

Что не так?

Только что проверил на чистой системе, все работает, после установки добавляешь строки (скрипт сам выдает что и куда добавлять, там трудно ошибиться):

# Load pyenv automatically by adding
# the following to ~/.bash_profile:

export PATH="/home/test-py/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Далее применяешь текущий .bash_profile и пробуешь:


pyenv install -l | grep 2.6
  2.6.6
  2.6.7
  2.6.8
  2.6.9
  3.2.6
  pypy-2.6.0-src
  pypy-2.6.0
  pypy-2.6.1-src
  pypy-2.6.1

А почему не через Docker?
Проще ведь, в разы.

Уже для этих целей периодически использую virtualenv…

А как там через докер, если например в дистрибутиве с python 2.7 нужно запустить скрипт на python 3, подскажете?