Como faço para criar um ambiente virtual Python 3 com a biblioteca Boto 3 no Amazon Linux 2?
Tenho uma instância do Amazon Elastic Compute Cloud (Amazon EC2) que executa o Amazon Linux 2. Quero criar um ambiente virtual Python 3 isolado com a biblioteca Boto 3 na minha instância.
Resolução
Instalar o Python 3 para Amazon Linux 2
-
Use SSH para se conectar à sua instância Linux do EC2. Para mais informações, consulte Conectar-se à sua instância do Linux a partir do Linux ou macOS usando SSH.
-
Execute um yum check-update para atualizar o índice do pacote. check-update também procura as atualizações disponíveis. Você não precisa atualizar outros pacotes para criar o ambiente Python 3.
-
Para determinar se seu host já tem o Python 3 instalado, execute list installed: >
[ec2-user ~]$ yum list installed | grep -i python3
Se o Python 3 não estiver instalado, você obterá a seguinte saída:
[ec2-user ~]$ yum list installed | grep -i python3[ec2-user ~]$ [ec2-user ~]$ python3 -bash: python3: command not found
Se o Python 3 estiver instalado, você obterá a seguinte saída:
[ec2-user ~]$ yum list installed | grep -i python3 python3.x86_64 3.7.4-1.amzn2.0.4 @amzn2-core python3-libs.x86_64 3.7.4-1.amzn2.0.4 @amzn2-core python3-pip.noarch 9.0.3-1.amzn2.0.1 @amzn2-core python3-setuptools.noarch 38.4.0-3.amzn2.0.6 @amzn2-core [ec2-user ~]$ whereis python3 python3: //usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib64/python3.7 /usr/include/python3.7m /usr/share/man/man1/python3.1.gz
-
Se o Python 3 não estiver instalado, instale o pacote com o gerenciador de pacotes yum:
[ec2-user ~]$ sudo yum install python3 -y
Crie um ambiente virtual no diretório inicial ec2-user
O comando a seguir cria o diretório do aplicativo com o ambiente virtual dentro dele. Você pode alterar my_app para outro nome. Se você alterar my_app, faça referência ao novo nome nas etapas de resolução restantes:
[ec2-user ~]$ python3 -m venv my_app/env
Ative o ambiente virtual e instale o Boto 3
-
Anexe uma função da AWS Identity and Access Management (IAM) à sua instância do EC2 com políticas de permissões para que o Boto 3 interaja com as APIs da AWS. Para outros métodos de autenticação, consulte a documentação do Boto 3.
-
Para ativar o ambiente, forneça o arquivo de ativação no bin diretório abaixo do diretório do seu projeto:
[ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
-
Certifique-se de que seu ambiente tenha o módulo pip mais recente instalado:
(env) [ec2-user ~]$ pip install pip --upgrade
-
Para instalar a biblioteca Boto 3 em seu ambiente virtual, use o comando pip:
(env) [ec2-user ~]$ pip install boto3
-
Execute o Python:
(env) [ec2-user ~]$ pythonPython 3.7.4 (default, Dec 13 2019, 01:02:18) [GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>>
-
Importe a biblioteca do Boto 3 e valide se ela funciona. Esta etapa exige que você tenha configurado as políticas de permissões da etapa 1. O exemplo de saída a seguir lista todos os buckets do Amazon Simple Storage Service (Amazon S3) dentro da conta:
>>> import boto3 # no error>>> s3 = boto3.resource('s3') >>> for bucket in s3.buckets.all(): print(bucket.name) >>> exit()
-
Para sair do ambiente virtual, execute o comando deactivate:
(env) [ec2-user ~]$ deactivate [ec2-user ~]$
-
Para ativar o ambiente virtual automaticamente ao fazer login, adicione-o ao arquivo ~/.bashrc:
[ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
-
Obtenha o arquivo ~/.bashrc em seu diretório inicial para recarregar o ambiente bash do seu ambiente. Isso ativa automaticamente seu ambiente virtual. O prompt reflete a alteração (env). Essa alteração também se aplica a qualquer sessão SSH futura:
[ec2-user ~]$ source ~/.bashrc (env) [ec2-user ~]$
Informações relacionadas
Atualizar o software da instância em sua instância Amazon Linux
Executar uma instância usando o Launch Instance Wizard
Virtualenv no site da Python Packaging Authority (PYPA)
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 2 anos