Definisi Masalah:
Apabila mencuba import relatif daripada fail Python dilaksanakan sebagai skrip peringkat teratas (cth., dengan menaip python myfile.py), ralat mesej ditemui: "Percubaan import relatif dalam bukan pakej."
Modul Pemahaman lwn. Skrip:
Perbezaan utama terletak pada cara Python mentafsir fail apabila dimuatkan. Apabila dijalankan terus sebagai skrip, fail mempunyai nama "__main__." Apabila diimport sebagai modul daripada fail lain, namanya menggambarkan struktur pakejnya (cth., "package.subpackage.module").
Sekatan Import Relatif:
Relatif import bergantung pada nama penuh modul untuk menentukan kedudukannya dalam hierarki pakej. Jika nama modul tidak mengandungi maklumat pakej (mis., "__main__"), import relatif gagal kerana modul tidak dianggap sebagai sebahagian daripada pakej.
Penjelasan Ralat:
Apabila nama penuh modul kekurangan titik, menunjukkan tiada perkaitan pakej, Python mentafsirkannya sebagai skrip kendiri, dan import relatif menjadi tidak sah. Ralat ini berlaku apabila:
Penyelesaian:
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa Import Relatif Gagal Apabila Menjalankan Skrip Python Secara Terus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!