5
respostas

NameError: name 'python' is not defined

Olá, instalei conforme as instruções da aula 1 atividade 2, porém o comportamento foi diferente aqui. Quando teclei "python -v" pela primeira vez, ele fez um monte de "imports", deu um monte de mensagens onde ele parece fazer comparação de arquivos, e no final a seguinte mensagem:

Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import 'atexit' # <class '_frozen_importlib.BuiltinImporter'>

Como achei estranho, digitei de novo "python -v" (no prompt >>>) e veio outra mensagem:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined

Devo me preocupar? Obrigado!

5 respostas

Olá, Tomas.

o comando python -v só funciona fora do terminal interativo (o terminal que fica com os >>>) do python. Quando estiver dentro do terminal interativo e quiser sair, basta digitar o comando exit() e você voltará ao terminal convencional.

O erro

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined

ocorre por que a palavra python não está definida dentro do ambiente do python.

Caso queira saber a versão do python estando no terminal interativo, terá que digitar os seguintes comandos:

>>> from platform import python_version

e depois

>>> print(python_version())

claro, sem os sinals >>>. Eles só estão aí para ilustrar que é um terminal interativo.

Se ainda estiver com dúvidas, pode perguntar. Espero ter ajudado.

Ok Madson, obrigado pela ajuda! Entendi um pouco mais agora...

Porém acho bom destacar que o comportamento aqui no meu Windows é diferente do que vemos no vídeo da aula. Na aula (Atividade 2 , aos 03:50 do vídeo) ele abre o prompt e só digita "python -v" - e a versão já aparece logo abaixo, sem escândalo, rsrs Aqui quando estou no prompt (cmd) e digito apenas "Python -v" ele já inicia o Python em si - ele faz um monte de coisas e dá várias mensagens, e na última mensagem ele mostra a versão, e me deixa no prompt do Python (>>> ) . Ou seja, eu só quero ver a versão mas acabo já iniciando tudo e entrando mesmo sem querer.

Tomas, agora acho que sei o que é.

Na verdade é que você usou o -v (com o v minúsculo), quando deveria ter usado como v maiúsculo.

o comando python -v coloca o python no modo detalhado para esta sessão. Para saber a versão, o comando deve ser executado com o v maiúsculo:

python -V

ou usando

python --version

Achei a resposta aqui.

Espero ter ajudado.

Ah, isso mesmo! Percebi a diferença agora.

Vou prestar mais atenção ao "Case Sensitive" .

Obrigado de novo!

Ótimo, Tomas.

Se puder, marca o tópico como respondido e seleciona a resposta que você acha que te ajudou a solucionar o problema.