Melhor resposta
Sem ver o código, é difícil chegar a uma resposta definitiva, mas Acho que o problema é que o código que você está importando é algo semelhante a este:
Você tem um módulo chamado fluff
e dentro desse módulo você tem uma classe chamado fluff;
na classe fluff, há um método chamado check\_output
Seu código se parece com este:
import fluff
cfg = fluff.check\_output(stuff) # You want the fluff class here
O problema é que tudo isso import fluff
o que faz é importar o módulo fluff. A classe fluff de que você precisa é na verdade chamada fluff.fluff.
Existem duas soluções:
1:
import fluff
cfg = fluff.fluff.check\_output(stuff) # You want the fluff class here
2:
from fluff import fluff # this imports the fluff class.
cfg = fluff.check\_output(stuff) # You want the fluff class here
Esta é uma das razões pelas quais a convenção de nomenclatura é tão importante – se os módulos e as classes seguem as convenções de nomenclatura PEP8, o código seria
from fluff import Fluff # this imports the fluff class.
cfg = Fluff.check\_output(stuff) # You want the fluff class here
Esse F maiúsculo pode ser suficiente para evitar erros – ou pelo menos dar uma pista sobre possíveis problemas
-——
A outra resposta potencial é que o o módulo que você está importando está sendo seguido por outro arquivo (em outras palavras, há um arquivo com o mesmo nome que o Python encontrou anteriormente em sua busca pelo que importar). A causa mais comum disso em iniciantes é quando você nomeia seu script da mesma forma que o módulo que está tentando importar; visto que o Python SEMPRE pesquisa o arquivo do diretório atual se você tiver um script chamado foo.py e ele faz uma importação foo, essa importação importará o script chamado foo.py – provavelmente não o que você deseja. >
A melhor maneira de diagnosticar esse problema é abrir o console interativo no mesmo diretório e digitar:
>>> import
>>>
onde
Resposta
Sem olhar no seu código, pode ser um dos dois problemas (mas não se limitando a esses dois) que eu poderia pensar, de cara, que são:
- O módulo não está instalado corretamente. Verifique a pasta de pacotes do seu site para o módulo. Se estiver lá, pode ser o problema não. 2, que é:
- Não está executando com uma versão apropriada do Python, ou seja, instalando módulos destinados ao Python2, mas chamando com a importação do Python3. Use pip para desinstalar o módulo e, em seguida, tente reinstalar com pip3 para obter a versão apropriada. Não sei por que, mas algumas máquinas como meu Raspberry Pi Zero W v1.1 padronizam o comando pip para Python2 em vez de 3. A reinstalação com pip3 funcionou para mim, já que estou executando meu código usando o
python3
comando em vez do usualpython
.
Eu poderia sugerir uma solução temporária “suja” que é copiar a fonte do módulo em seu diretório de trabalho, ou seja, pegar a pasta “módulo” e colocá-la na mesma pasta do arquivo de origem que você está executando. Também pode ser que você tenha clonado um repositório git ou extraído de uma pasta .zip que contém o arquivo module.py dentro de outra pasta, que está em outra pasta com o mesmo nome. Nesse caso, pode ser útil importar module.module como módulo em vez de simplesmente importar o módulo imediatamente, assim:
import module.module as module
em vez de
import module
o que reduz a quantidade de alterações em seu código. Boa sorte!