Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro configurando o banco de dados

Que erro e esse: fatal: [54.213.222.0]: FAILED! => {"changed": true, "cmd": ". /home/ubuntu/tcc/venv/bin/activate; python /home/ubuntu/tcc/manage.py migrate", "delta": "0:00:00.044360", "end": "2024-06-17 22:11:26.137456", "msg": "non-zero return code", "rc": 1, "start": "2024-06-17 22:11:26.093096", "stderr": "Traceback (most recent call last):\n File "/home/ubuntu/tcc/manage.py", line 11, in main\n from django.core.management import execute_from_command_line\n File "/home/ubuntu/tcc/venv/lib/python3.12/site-packages/django/init.py", line 1, in \n from django.utils.version import get_version\n File "/home/ubuntu/tcc/venv/lib/python3.12/site-packages/django/utils/version.py", line 6, in \n from distutils.version import LooseVersion\nModuleNotFoundError: No module named 'distutils'\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File "/home/ubuntu/tcc/manage.py", line 22, in \n main()\n File "/home/ubuntu/tcc/manage.py", line 13, in main\n raise ImportError(\nImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?", "stderr_lines": ["Traceback (most recent call last):", " File "/home/ubuntu/tcc/manage.py", line 11, in main", " from django.core.management import execute_from_command_line", " File "/home/ubuntu/tcc/venv/lib/python3.12/site-packages/django/init.py", line 1, in ", " from django.utils.version import get_version", " File "/home/ubuntu/tcc/venv/lib/python3.12/site-packages/django/utils/version.py", line 6, in ", " from distutils.version import LooseVersion", "ModuleNotFoundError: No module named 'distutils'", "", "The above exception was the direct cause of the following exception:", "", "Traceback (most recent call last):", " File "/home/ubuntu/tcc/manage.py", line 22, in ", " main()", " File "/home/ubuntu/tcc/manage.py", line 13, in main", " raise ImportError(", "ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?"], "stdout": "", "stdout_lines": []}

PLAY RECAP ********************************************************************************************************************************************************************************** 54.213.222.0 : ok=5 changed=2 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

2 respostas
solução!

Olá Bruno!

Esse erro está indicando que o módulo distutils não foi encontrado, o que é necessário para o Django funcionar corretamente. Isso geralmente acontece quando o pacote python3-distutils não está instalado no seu ambiente virtual ou no sistema.

Aqui vão alguns passos para tentar resolver o problema:

  1. Ativar o ambiente virtual: Certifique-se de que o ambiente virtual está ativado. No seu comando, você já está ativando o ambiente virtual, mas vale a pena garantir que ele está configurado corretamente.

    source /home/ubuntu/tcc/venv/bin/activate
    
  2. Instalar o distutils: Instale o pacote distutils no seu ambiente virtual. Você pode fazer isso executando:

    sudo apt-get install python3-distutils
    
  3. Reinstalar dependências: Caso o problema persista, tente reinstalar as dependências do seu projeto. Dentro do ambiente virtual, execute:

    pip install --upgrade pip setuptools wheel
    pip install -r /home/ubuntu/tcc/requirements.txt
    
  4. Verificar instalação do Django: Certifique-se de que o Django está instalado no seu ambiente virtual:

    pip show django
    
  5. Verificar variáveis de ambiente: Certifique-se de que as variáveis de ambiente estão configuradas corretamente, especialmente o PYTHONPATH.

Depois de seguir esses passos, tente executar novamente o comando de migração:

python /home/ubuntu/tcc/manage.py migrate

Bons estudos!

O problema não era a falta do distutils, mas sim que o ambiente virtual não estava ativado. Sua dica me ajudou a perceber esse descuido. Obrigado!