Менеджеры пакетов - уровень пользователя
Для диспетчера пакетов, который может устанавливать несколько версий python и управлять ими, это хороший выбор:
- pyenv - только возможность устанавливать и управлять версиями python
- asdf - возможность установки и управления множеством разных языков
Преимущества этих менеджеров пакетов заключаются в том, что их может быть проще настроить и установить с ними несколько версий python, чем установить python из исходного кода. Они также предоставляют команды для простого изменения доступных версий Python с помощью прокладок и установки версии Python для каждого каталога.
Этот недостаток заключается в том , что, по умолчанию, они установлены на пользовательском уровне (внутри вашей домашней директории) и требуют немного конфигурации пользовательского уровня - вам необходимо редактировать ваши ~/.profileи ~/.bashrcили подобные файлы. Это означает, что их непросто использовать для установки нескольких версий python глобально для всех пользователей. Для этого вы можете установить из исходного кода вместе с существующей версией python ОС.
Установка из исходников - общесистемная
Для этого метода вам потребуются привилегии root.
См. Официальную документацию по python для сборки из исходного кода для получения дополнительных сведений и параметров.
/usr/localявляется местом, назначенным системным администратором для установки общего (общесистемного) программного обеспечения, поэтому его подкаталоги - хорошее место для загрузки и установки исходного кода python. См. Раздел 4.9 стандарта иерархии файлов Linux Foundation .
Установите все зависимости сборки. В системах на основе Debian используйте:
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
Выберите, какую версию Python вы хотите установить. См. Список на странице версий исходного кода Python .
Загрузите и разархивируйте файл /usr/local/src, заменив X.X.Xниже версию на Python (т.е. 3.8.2).
cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz
Перед сборкой и установкой установите CFLAGSпеременную среды с необходимыми флагами компилятора C (см. makeДокументацию GNU ). Обычно это не требуется для общего использования, но если, например, вы собираетесь создать плагин uWSGI с этой версией python, вы можете установить флаги -fPIC, со следующим:
export CFLAGS='-fPIC'
Измените рабочий каталог на распакованный исходный каталог python и настройте сборку. Вероятно, вы захотите использовать --enable-optimizationsопцию ./configureкоманды для оптимизации под руководством профиля . Используйте --prefix=/usr/localдля установки в соответствующие подкаталоги ( /usr/local/bin, /usr/local/libи т. Д.).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Скомпилируйте проект makeи установите с помощью, make altinstallчтобы избежать переопределения любых файлов при установке нескольких версий. См. Предупреждение на этой странице документации по сборке Python.
make -j 4
make altinstall
Затем вы сможете запускать свои новые версии python и pip с помощью pythonX.Xи pipX.X(т.е. python3.8и pip3.8). Обратите внимание, что если дополнительная версия вашей новой установки совпадает с версией ОС (например, если вы устанавливали python3.8.4, а ОС использовала python3.8.2), тогда вам нужно будет указать весь путь ( /usr/local/bin/pythonX.X) или установить псевдоним для использования этой версии.