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

Erro ao subir o projeto

Olá. Após instalar a dependência do django-filter e tentar subir o projeto com o comando "python manage.py runserver"o seguinte erro aparece:


Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/commands/runserver.py", line 133, in inner_run
    self.check(display_num_errors=True)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/base.py", line 485, in check
    all_issues = checks.run_checks(
                 ^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/urls.py", line 14, in check_url_config
    return check_resolver(resolver)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/urls.py", line 24, in check_resolver
    return check_method()
           ^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 494, in check
    for pattern in self.url_patterns:
                   ^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 715, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
                       ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 708, in urlconf_module
    return import_module(self.urlconf_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/setup/urls.py", line 3, in <module>
    from rest_framework import routers
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/rest_framework/routers.py", line 19, in <module>
    from django.conf.urls import url
ImportError: cannot import name 'url' from 'django.conf.urls' (/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/conf/urls/__init__.py)
Traceback (most recent call last):
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/template/utils.py", line 69, in __getitem__
    return self._engines[alias]
           ~~~~~~~~~~~~~^^^^^^^
KeyError: 'django'
11 respostas

Olá Raphael, tudo bem com você?

Para corrigir esse erro, instale a versão 3 do Django e a Django Filters 24.2, da seguinte forma:

pip install django==3.0.8
pip install django-filter==24.2

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá rafael. obrigado pelo retorno. Fiz o que você falou, mas continua dando erro.

Traceback (most recent call last):
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/manage.py", line 22, in <module>
    main()
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/base.py", line 413, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/base.py", line 454, in execute
    self.check()
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/management/base.py", line 486, in check
    all_issues = checks.run_checks(
                 ^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/urls.py", line 14, in check_url_config
    return check_resolver(resolver)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/core/checks/urls.py", line 24, in check_resolver
    return check_method()
           ^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 519, in check
    for pattern in self.url_patterns:
                   ^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 738, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
                       ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 731, in urlconf_module
    return import_module(self.urlconf_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/setup/urls.py", line 3, in <module>
    from rest_framework import routers
  File "/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/rest_framework/routers.py", line 19, in <module>
    from django.conf.urls import url
ImportError: cannot import name 'url' from 'django.conf.urls' (/Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/django/conf/urls/__init__.py)

Olá Raphael!

O erro mudou. O novo erro indica que há um problema de importação no seu código, onde está django.conf.urls era para estar django.urls. Como está o seu arquivo urls.py?

Recomendo que deixe o arquivo urls.py da forma mostrada abaixo:

from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from clientes.views import ClientesViewSet

router = routers.DefaultRouter()
router.register('clientes', ClientesViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(router.urls)),
]

Outra alternativa é você ir até o caminho /Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/rest_framework/routers.py e onde está django.conf.urls, você deve alterar para: django.urls

Se caso o erro persistir, peço que compartilhe o código do seu projeto completo para que eu possa investigar, incluindo também as versões das bibliotecas utilizadas. Dessa forma, consigo te orientar melhor. Pode compartilhar via drive ou Github, o que for mais prático para você.

Abraços e bons estudos!

Olá Rafael. o meu urls.py já estava da mesma forma como você postou na resposta. estou seguindo exatamente como no curso. O código está igual ao desenvolvido até a parte final do curso, onde é feito o deploy. Fiz a alteração que você propos /Users/raphaelpfeifer/projetos/python-apis/projeto_clientes/venv/lib/python3.12/site-packages/rest_framework/routers.py mas também não surtiu efeito

Olá Raphael, boa noite!

Consegue compartilhar o link do seu projeto completo no GitHub ou Drive?

Fico no aguardo.

Olá rafael. Segue o link do github do projeto https://github.com/raphapfeifer/api-cliente.git

Olá Raphael, tudo bem com você?

Agradeço o compartilhamento do código completo. O erro apresentado, está ocorrendo devido a incompatibilidade entre as versões das bibliotecas Django e django-filter utilizadas no projeto. Peço que siga os passos apresentados abaixo para corrigir o erro apresentado.

  • Desative o ambiente virtual executando o comando abaixo no terminal aberto no seu projeto:

    deactivate
    
  • Exclua a pasta venv

  • Crie um novo ambiente virtual e ative-o executando os comandos abaixo:

    python -m venv venv
    
    .\venv\Scripts\activate
    
  • Abra o arquivo "requirements.txt" exclua seu conteúdo e adicione as seguintes bibliotecas com suas respectivas versões - salve o arquivo:

    asgiref==3.8.1
    astroid==2.4.2
    colorama==0.4.6
    Django==3.2.10
    django-filter==2.3.0
    djangorestframework==3.11.0
    Faker==25.2.0
    isort==4.3.21
    lazy-object-proxy==1.4.3
    mccabe==0.6.1
    pylint==2.5.3
    python-dateutil==2.9.0.post0
    pytz==2020.1
    six==1.16.0
    sqlparse==0.5.0
    toml==0.10.1
    typing_extensions==4.11.0
    validate-docbr==1.10.0
    wrapt==1.12.1
    
  • Instale as bibliotecas executando o comando abaixo:

    pip install -r .\requirements.txt
    
  • Após instalar as bibliotecas, suba novamente o servidor executando o comando abaixo:

    python manage.py runserver
    
  • Neste momento o servidor estará rodando, basta dar continuidade seguindo a aula Ordenação a partir do minuto 3:05

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá. Eu fiz o procedimento que você passou mas está dando o mesmo erro. Eu já havia feito antes esse processo de reinstalar o requirements.txt. Eu percebi que você passou os comandos de de instalação do windows, estou usando mac.

Pode ter alguma relação com as versões das dependências?

Olá Raphael!

Sim, pode ter relação com as versões das dependências e até mesmo com o sistema operacional.

Uma outra alternativa é você tentar instalar todas as versões mais recentes de todas as bibliotecas, então, o requirements ficaria assim:

Django
django-filter
djangorestframework
Faker
pytz
validate-docbr

Depois de salvar esse arquivo, execute pip install -r requirements.txt e tente subir o servidor.

Porém, se ainda sim o erro permanecer, como tentamos várias alternativas e o erro permanece e eu não tenho acesso a seu sistema, o que eu recomendo é que você instale uma versão mais antiga do Python e comece do zero, pois a 3.12 é bem recente e isso também pode influenciar.

Com o Python 3.10 instalado, criar o ambiente virtual e instalar as bibliotecas, tente executar novamente o projeto.

Fico na torcida para conseguir executar o projeto.

Abraços e bons estudos!

solução!

Olá Rafael Deu certo! Eu tive que voltar a versão do python de 3.12 para 3.10 e ainda tive que instalar manualmente as dependências django-filter e Djando no venv. Obrigado por todo ajuda.

Bom dia Raphael!

Uffa!!! Demorou, mas conseguimos. Na área da programação é assim, nem sempre vamos conseguir resolver de primeira, mas, a persistência é o que conta e isso você teve de sobra.

Sucesso na sua carreira.

Abraços e bons estudos!