Como faço para criar um ambiente virtual Python 3 com a biblioteca Boto 3 no Amazon Linux 2?

4 minuto de leitura
0

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

  1. 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.

  2. 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.

  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
  4. 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

  1. 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.

  2. 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 ~]$
  3. Certifique-se de que seu ambiente tenha o módulo pip mais recente instalado:

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Para instalar a biblioteca Boto 3 em seu ambiente virtual, use o comando pip:

    (env) [ec2-user ~]$ pip install boto3
  5. 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.
    >>>>
  6. 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()
  7. Para sair do ambiente virtual, execute o comando deactivate:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. 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
  9. 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)

AWS OFICIAL
AWS OFICIALAtualizada há 8 meses