Meilleure réponse
Sans voir le code, il est difficile de trouver une réponse définitive, mais Je pense que le problème est que le code que vous importez est quelque chose de similaire à ceci:
Vous avez un module appelé fluff
et à lintérieur de ce module vous avez une classe appelée fluff;
dans la classe fluff, il existe une méthode appelée check\_output
Votre code ressemble à ceci:
import fluff
cfg = fluff.check\_output(stuff) # You want the fluff class here
Le problème est que tout cela import fluff
importe le module fluff. La classe de peluches dont vous avez besoin sappelle en fait fluff.fluff.
Il existe deux solutions:
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
Cest lune des raisons pour lesquelles la convention de dénomination est si importante – si les modules et les classes suivent les conventions de dénomination PEP8, le code serait
from fluff import Fluff # this imports the fluff class.
cfg = Fluff.check\_output(stuff) # You want the fluff class here
Ce «F» majuscule pourrait être suffisant pour éviter les erreurs – ou au moins vous indiquer des problèmes potentiels
-——
Lautre réponse potentielle est que le le module que vous importez est masqué par un autre fichier (en dautres termes, il existe un fichier du même nom que Python trouve plus tôt dans sa recherche de ce quil faut importer). La cause la plus courante de ceci chez les débutants est lorsque vous nommez votre script de la même manière que le module que vous essayez dimporter; puisque Python recherche TOUJOURS le fichier du répertoire courant si vous avez un script appelé «foo.py» et quil effectue un «import foo», cette importation importera le script nommé «foo.py» – probablement pas ce que vous voulez.
La meilleure façon de diagnostiquer ce problème est douvrir la console interactive dans le même répertoire et de saisir:
>>> import
>>>
où
Réponse
Sans regarder au niveau de votre code, cela pourrait être lun des deux problèmes (mais pas limité à ces deux) auxquels je pourrais penser, dès le départ, qui sont:
- Le module nest pas correctement installé. Vérifiez votre dossier site-packages pour le module. Si cest là, ça pourrait être le problème no. 2, qui est:
- Ne fonctionne pas avec une version appropriée de Python, cest-à-dire installer des modules destinés à Python2 mais appeler avec limportation Python3. Utilisez pip pour désinstaller le module, puis essayez de réinstaller avec pip3 pour obtenir la version appropriée. Je ne sais pas pourquoi mais certaines machines comme mon Raspberry Pi Zero W v1.1 utilisent par défaut la commande pip sur Python2 au lieu de 3. La réinstallation avec pip3 a fonctionné pour moi, car jexécute mon code en utilisant le
python3
au lieu de lhabituellepython
.
Je pourrais suggérer une solution temporaire «sale» qui consiste à copier la source du module dans votre répertoire de travail, cest-à-dire en prenant le dossier «module» et en le plaçant dans le même dossier que le fichier source que vous exécutez. Il se peut également que vous ayez cloné un référentiel git ou extrait dun dossier .zip contenant le fichier module.py dans un autre dossier, qui se trouve dans un autre dossier du même nom. Dans ce cas, il peut être utile dimporter module.module en tant que module au lieu de simplement importer le module directement, comme ceci:
import module.module as module
au lieu de
import module
qui réduit la quantité de changements dans votre code. Bonne chance!