Gerenciadores de pacotes - nível de usuário
Para um gerenciador de pacotes que pode instalar e gerenciar várias versões do python, estas são boas opções:
- pyenv - apenas capaz de instalar e gerenciar versões de python
- asdf - capaz de instalar e gerenciar muitos idiomas diferentes
As vantagens para esses gerenciadores de pacotes é que pode ser mais fácil configurá-los e instalar várias versões do python com eles do que instalar o python a partir do código-fonte. Eles também fornecem comandos para alterar facilmente a (s) versão (ões) python disponível (is) usando shims e definindo a versão python por diretório.
Esta desvantagem é que, por padrão, eles são instalados no nível do usuário (dentro do seu diretório pessoal) e requerem um pouco de configuração no nível do usuário - você precisará editar seus arquivos ~/.profilee / ~/.bashrcou semelhantes. Isso significa que não é fácil usá-los para instalar várias versões de python globalmente para todos os usuários. Para fazer isso, você pode instalar a partir do código-fonte junto com a versão python existente do sistema operacional.
Instalação da fonte - em todo o sistema
Você precisará de privilégios de root para este método.
Consulte a documentação oficial do Python para compilar a partir do código-fonte para considerações e opções adicionais.
/usr/localé o local designado para um administrador de sistema instalar software compartilhado (em todo o sistema), portanto, seus subdiretórios são um bom lugar para baixar o código-fonte python e instalar. Veja a seção 4.9 do Padrão de Hierarquia de Arquivos da Linux Foundation .
Instale todas as dependências de compilação. Em sistemas baseados em Debian, use:
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
Escolha qual versão do Python você deseja instalar. Veja a página Python Source Releases para uma lista.
Baixe e descompacte o arquivo /usr/local/src, substituindo X.X.Xabaixo pela versão python (ou seja 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
Antes de compilar e instalar, defina a CFLAGSvariável de ambiente com as sinalizações do compilador C necessárias (consulte a makedocumentação do GNU ). Isso geralmente não é necessário para uso geral, mas se, por exemplo, você for criar um plug-in uWSGI com esta versão do python, convém definir os sinalizadores,, -fPICcom o seguinte:
export CFLAGS='-fPIC'
Altere o diretório de trabalho para o diretório de origem python descompactado e configure a construção. Você provavelmente vai querer usar a --enable-optimizationsopção no ./configurecomando para otimização guiada por perfil . Use --prefix=/usr/localpara instalar os subdiretórios apropriados ( /usr/local/bin, /usr/local/lib, etc.).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Compile o projeto makee instale-o make altinstallpara evitar a substituição de arquivos ao instalar várias versões. Veja o aviso nesta página da documentação de compilação do Python.
make -j 4
make altinstall
Então, você deve ser capaz de executar suas novas versões de python e pip com pythonX.Xe pipX.X(ou seja, python3.8e pip3.8). Observe que se a versão secundária de sua nova instalação for igual à versão do sistema operacional (por exemplo, se você estava instalando o python3.8.4 e o sistema operacional usava o python3.8.2), você precisaria especificar o caminho completo ( /usr/local/bin/pythonX.X) ou definir um alias para usar esta versão.