Bedste svar
Uden at se kode er det svært at komme med et endeligt svar, men Jeg tror, problemet er, at koden, du importerer, ligner noget her:
Du har et modul kaldet fluff
og inde i det modul har du en klasse kaldes fluff;
i klassen fluff er der en metode kaldet check\_output
Din kode ser sådan ud:
import fluff
cfg = fluff.check\_output(stuff) # You want the fluff class here
Problemet er, at alt det import fluff
gør er at importere fnugmodulet. Den fluffklasse, du har brug for, hedder faktisk fluff.fluff.
Der er to løsninger:
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
Dette er en af grundene til, at navngivningskonventionen er så vigtig – hvis modulerne og klasser følger PEP8-navngivningskonventionerne, ville koden være
from fluff import Fluff # this imports the fluff class.
cfg = Fluff.check\_output(stuff) # You want the fluff class here
Den store bogstav F kan være tilstrækkelig til at forhindre fejl – eller i det mindste hente dig om potentielle problemer modulet, du importerer, skygges af en anden fil (med andre ord er der en fil med samme navn, som Python finder tidligere i sin søgning efter, hvad der skal importeres). Den mest almindelige årsag til dette hos begyndere er, når du navngiver dit script det samme som det modul, du prøver at importere; da Python ALTID søger i den aktuelle biblioteksfil, hvis du har et script kaldet foo.py og det gør et import foo, importerer den import scriptet med navnet foo.py – sandsynligvis ikke hvad du vil.
Den bedste måde at diagnosticere dette problem på er at åbne den interaktive konsol i samme bibliotek og skrive:
>>> import
>>>
hvor
Svar
Uden at kigge ved din kode kunne det være et af to problemer (men ikke begrænset til disse to) jeg kunne tænke på lige uden for flagermusen, som er:
- Modulet er ikke korrekt installeret. Tjek din webstedspakker-mappe for modulet. Hvis det er der, kan det være problem nej. 2, som er:
- Kører ikke med en passende version af Python, dvs. installerer moduler beregnet til Python2, men ringer med Python3-import. Brug pip til at afinstallere modulet, og prøv derefter at geninstallere med pip3 for at få den rigtige version. Ikke sikker på hvorfor, men nogle maskiner som min Raspberry Pi Zero W v1.1 standardindstiller pip-kommandoen til Python2 i stedet for 3. Geninstallation med pip3 fungerede for mig, da jeg kører min kode ved hjælp af
python3
kommando i stedet for den sædvanligepython
.
Jeg kunne foreslå en midlertidig “snavset” løsning, der er at kopiere modulkilden til din arbejdskatalog, dvs. tage mappen “modul” og placere den i samme mappe som kildefilen, du kører. Det kan også være, at du har klonet et git-arkiv eller ekstraheret fra en .zip-mappe, der har module.py-filen i en anden mappe, som er i en anden mappe med samme navn. I dette tilfælde kan det hjælpe med at importere module.module som modul i stedet for blot at importere modulet med det samme, ligesom dette:
import module.module as module
i stedet for
import module
hvilket reducerer mængden af ændringer i din kode. Held og lykke!