Import Relatif dalam Python: Memahami Ralat "Bukan Pakej"
Isu di mana-mana "Percubaan import relatif dalam bukan pakej" berpunca daripada salah faham perbezaan antara skrip dan modul dan tingkah laku masing-masing semasa import.
Skrip lwn. Modul
Apabila fail Python dilaksanakan secara langsung, ia bertindak sebagai skrip peringkat atas dan diberi nama "__main__." Apabila diimport, nama fail menjadi nama pakej diikuti dengan nama fail, dipisahkan dengan titik.
Import dan Pakej Relatif
Import relatif menggunakan nama modul untuk mencarinya kedudukan dalam hierarki pakej. Walau bagaimanapun, jika nama modul tidak mengandungi maklumat pakej (cth., "__main__"), import relatif diselesaikan seolah-olah ia adalah modul peringkat atas, tanpa mengira lokasi fail sebenar.
The Ralat "Bukan Pakej"
Ralat berlaku apabila import relatif dicuba dalam modul yang tidak diiktiraf sebagai sebahagian daripada pakej. Ini boleh berlaku apabila nama modul tidak mempunyai titik, yang menunjukkan status bukan pakejnya.
Penyelesaian
Untuk menyelesaikan ralat, pertimbangkan pendekatan berikut:
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa Python Membuang Ralat 'Import Relatif dalam Bukan Pakej'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!