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

ImportError: cannot import name 'patterns'

Estou usando o Python 3.6.4 e o Django 2.0 e aparece tantos erros que eu nem sei mais o que fazer. Tentei fazer o curso instalando as versões que são indicadas nesse curso, porém sem sucesso. Voltei para Python 3.6.4 e o Django 2.0. E me aparece isso:

C:\Users\Rogerio\connectedin>python manage.py runserver Performing system checks...

Unhandled exception in thread started by .wrapper at 0x03BBECD8> Traceback (most recent call last): File "C:\Python36-32\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper fn(args, *kwargs) File "C:\Python36-32\lib\site-packages\django\core\management\commands\runserver.py", line 120, in inner_run self.check(display_num_errors=True) File "C:\Python36-32\lib\site-packages\django\core\management\base.py", line 364, in check include_deployment_checks=include_deployment_checks, File "C:\Python36-32\lib\site-packages\django\core\management\base.py", line 351, in _run_checks return checks.run_checks(kwargs) File "C:\Python36-32\lib\site-packages\django\core\checks\registry.py", line 73, in runchecks newerrors = check(appconfigs=appconfigs) File "C:\Python36-32\lib\site-packages\django\core\checks\urls.py", line 13, in checkurlconfig return checkresolver(resolver) File "C:\Python36-32\lib\site-packages\django\core\checks\urls.py", line 23, in checkresolver return checkmethod() File "C:\Python36-32\lib\site-packages\django\urls\resolvers.py", line 397, in check for pattern in self.urlpatterns: File "C:\Python36-32\lib\site-packages\django\utils\functional.py", line 36, in __get res = instance.__dict[self.name] = self.func(instance) File "C:\Python36-32\lib\site-packages\django\urls\resolvers.py", line 536, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\Python36-32\lib\site-packages\django\utils\functional.py", line 36, in __get res = instance.__dict[self.name] = self.func(instance) File "C:\Python36-32\lib\site-packages\django\urls\resolvers.py", line 529, in urlconf_module return import_module(self.urlconf_name) File "C:\Python36-32\lib\importlib__init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 665, in _load_unlocked File "", line 678, in exec_module File "", line 219, in _call_with_frames_removed File "C:\Users\Rogerio\connectedin\connectedin\urls.py", line 1, in from django.conf.urls import patterns, include, url ImportError: cannot import name 'patterns'

3 respostas

O Django 2.0 mudou bastante, inclusive o nome de alguns artefatos. Como não uso essa versão, não sei dizer com clareza o que mudou.

O mais recomendado é você instalar a versão do Django 1.7 indicada no curso. Depois de terminá-lo, pode migrar o projeto e verificar o que precisa ser alterado. Migrar direto para a versão 2 o fará ficar na dúvida se é problema do seu código o incompatibilidade.

Inclusive, no capítulo de instalação, esta escrito assim:

Utilizaremos a versão 2.x do Python, apesar do Django também aceitar a versão 3.x (mas não ultrapasse a versão 3.3). Dependendo da sua plataforma, alguns cuidados precisam ser tomados

Você não pode usar versão de Python superior a 3.3!

Aliás, sugiro seguir sempre a versão indica nos cursos. Todavia, querer atualizar para a versão mais nova é uma tarefa válida, com certeza.

Feliz 2018!

solução!

Aliás, você pode sugerir uma atualização desse curso através desse link:

https://trello.com/b/4grNfK1m/alura-alunos-cursos

Quanto mais alunos pedirem, maiores as chances dele ser atualizado.

Feliz 2018!

Sei que o tópico já esta fechado, mas no Django 2 você não precisa importar o 'patterns'. Alias, o pacote se torna 'django.urls' ao invés de 'django.conf.urls' na v2, ficando: "from django.urls import ...". a função 'url' fica substituida por 're_path' e se usa 'path' tambem, se quiser navegar pela árvore de arquivos. Como o mestre Jedi disse, temos muitas mudanças na V2.0, mas fiz o curso todo nela, lógico que com a documentação oficial aberta, e deu tudo certo. =]