Względny import po raz miliardowy
Byłem tu:
http://www.python.org/dev/peps/pep-0328/http://docs.python.org/2/tutorial/modules.html#packagesPakiety Pythona: względne importowaniepython względny przykład importu kodu nie działaOstateczna odpowiedź na import względnego PythonaImport względny w PythoniePython: wyłączenie względnego importui wiele adresów URL, których nie skopiowałem, niektóre na SO, inne na innych stronach, kiedy pomyślałem, że będę miał rozwiązanie szybko.
Ciągle powtarzające się pytanie brzmi: W systemie Windows 7, 32-bitowym Pythonie 2.7.3, w jaki sposób mogę rozwiązać ten komunikat „Próba względnego importu w pakiecie”? Zbudowałem dokładną replikę pakietu na pep-0328:
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleY.py
subpackage2/
__init__.py
moduleZ.py
moduleA.py
Zrobiłem funkcje nazwane spamem i jajami w odpowiednich modułach. Oczywiście to nie działa. Odpowiedź najwyraźniej znajduje się w czwartym adresie URL, który wymieniłem, ale jest dla mnie wszystkim. Ta odpowiedź dotyczy jednego z odwiedzonych adresów URL:
Import względny używa atrybutu nazwy modułu, aby określić pozycję tego modułu w hierarchii pakietów. Jeśli nazwa modułu nie zawiera żadnych informacji o pakiecie (np. Jest ustawiona na „main”), względne importowanie jest rozwiązywane tak, jakby moduł był modułem najwyższego poziomu, niezależnie od tego, gdzie moduł znajduje się w systemie plików.
Powyższa odpowiedź wygląda obiecująco, ale wszystkie są dla mnie hieroglifami. Więc moje pytanie, jak sprawić, by Python nie zwrócił mi „Próba względnego importu w pakiecie”? ma odpowiedź, która rzekomo zawiera -m.
Czy ktoś może mi powiedzieć, dlaczego Python podaje ten komunikat o błędzie,co to znaczy bez opakowania!, dlaczego i jak definiujesz „pakiet” iprecyzyjna odpowiedź jest dość łatwa do zrozumienia dla przedszkola.
Edytuj: import został wykonany z konsoli.