Ir para o conteúdo

Como faço para criar um ambiente virtual Python 3 com a biblioteca Boto3 no AL2 ou AL2023?

4 minuto de leitura
0

Tenho uma instância do Amazon Elastic Compute Cloud (Amazon EC2) que executa o Amazon Linux 2 (AL2) ou Amazon Linux 2023 (AL2023). Quero criar um ambiente virtual Python 3 isolado com o AWS SDK para Python (Boto3) na minha instância.

Resolução

Instalar o Python 3

Conclua as etapas a seguir:

  1. Use SSH para se conectar à sua instância DO Linux do EC2.

  2. Para atualizar o índice do pacote, execute o seguinte comando:

    yum check-update

    Observação: o comando anterior 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 o seguinte comando:

    [ec2-user ~]$ yum list installed | grep -i python3

    Se o Python 3 não estiver instalado, você receberá a seguinte saída:

    [ec2-user ~]$ yum list installed | grep -i python3
    [ec2-user ~]$ python3
    -bash: python3: command not found

    Se o Python 3 estiver instalado, você receberá a seguinte saída com base na sua distribuição:
    AL2:

    [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

    AL2023:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                         3.9.21-1.amzn2023.0.3              @System
    python3-pip-wheel.noarch               21.3.1-2.amzn2023.0.11             @System
    python3-libs.x86_64                    3.9.21-1.amzn2023.0.3              @System
    python3-setuptools.noarch              59.6.0-2.amzn2023.0.5              @System
    
    [ec2-user ~]$ whereis python3
    python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
    
  4. Se o Python 3 não estiver instalado, execute o seguinte comando para instalar 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

Para criar o diretório de aplicação com o ambiente virtual dentro dele, execute o seguinte comando:

[ec2-user ~]$ python3 -m venv my_app/env

Observação: substitua my\ _app pelo nome do diretório da aplicação.

Ativar o ambiente virtual e instalar a biblioteca Boto3

Conclua as etapas a seguir:

  1. Anexe um perfil do AWS Identity and Access Management (AWS IAM) à sua instância. O perfil deve ter uma política de permissões que permita que o SDK para Python (Boto3) execute as ações que sua configuração exige. Para obter outros métodos de autenticação, consulte a Configuração no site do Boto3.

  2. Para ativar o ambiente, execute o seguinte comando:

    [ec2-user ~]$ source ~/my_app/env/bin/activate
    (env) [ec2-user ~]$

    Observação: substitua my\ _app pelo nome do diretório da aplicação.

  3. Para garantir que seu ambiente tenha o módulo pip mais recente instalado, execute o seguinte comando:

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

    (env) [ec2-user ~]$ pip install boto3
  5. Para executar o Python, execute o seguinte comando:

    (env) [ec2-user ~]$ python
    Python 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. Para importar a biblioteca Boto3 e confirmar se ela funciona, execute o seguinte comando:

    >>> import boto3                          # no error    

    O exemplo de saída a seguir lista todos os buckets do Amazon Simple Storage Service (Amazon S3) dentro da conta da AWS:

    >>> import boto3                          # no error
    >>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    ...     print(bucket.name)
    ...                                       # Press Enter twice to execute the loop
    >>> exit()                                # Then type exit() to quit Python shell
  7. Para sair do ambiente virtual, execute o seguinte comando:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Para ativar automaticamente o ambiente virtual ao fazer login, execute o seguinte comando para atualizar o arquivo ~/.bashrc:

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc

    Observação: substitua my\ _app pelo nome do diretório da aplicação. O comando anterior ativa automaticamente seu ambiente virtual.

  9. Para recarregar o ambiente bash do seu ambiente, execute o seguinte comando:

    [ec2-user ~]$ source ~/.bashrc

    Exemplo de saída:

    (env) [ec2-user ~]$

    Observação: o (env) mostra que você ativou corretamente o ambiente virtual. Agora, é possível usar o ambiente Python por padrão em todas as futuras sessões SSH e ao executar o comando source ~/bashrc.

Informações relacionadas

Atualizar o software da instância em sua instância AL2

Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console

Virtualenv no site da Python Packaging Authority (PyPA)

AWS OFICIALAtualizada há um ano