Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Import Relatif Python 3 Saya Gagal, dan Bagaimana Saya Boleh Membaikinya?
Import Relatif dalam Python 3: Pemahaman dan Penyelesaian
Import relatif, yang biasa digunakan untuk mengimport modul dalam direktori yang sama, kadangkala boleh membawa kepada ralat seperti ImportError atau ModuleNotFoundError. Memahami sebab asas adalah penting untuk menyelesaikan isu ini.
Gelagat Import Relatif dalam Python 3
Dalam Python 3, import relatif hanya berfungsi jika modul mengimport modul lain berada dalam pakej yang sama. Pakej ialah direktori yang mengandungi fail __init__.py, yang menunjukkan status pakejnya. Jika pakej mengandungi subdirektori dengan modul tambahan, import relatif daripada subdirektori tersebut kepada modul dalam subdirektori lain akan gagal.
Pemasukan Pakej Root
Untuk menyelesaikan isu ini, pastikan bahawa direktori induk modul yang terlibat ialah pakej, ditunjukkan dengan kehadiran fail __init__.py. Jika direktori induk bukan pakej, import relatif akan gagal dengan ralat "cuba import relatif tanpa pakej induk yang diketahui."
Ralat: "ModuleNotFoundError: Tiada modul bernama 'mymodule'"
Ralat ini berlaku apabila modul yang diimport (mymodule dalam kes ini) tidak wujud dalam laluan yang ditentukan. Sahkan bahawa modul itu wujud dan dinamakan dengan betul.
Ralat: "SystemError: Modul induk '' tidak dimuatkan, tidak boleh melakukan import relatif"
Ralat ini menunjukkan bahawa modul induk (yang mengandungi import relatif) belum dimuatkan. Pastikan modul induk sedang dilaksanakan atau diimport sebelum mencuba import relatif.
Penyelesaian untuk Import Relatif
Jika mengelakkan import relatif tidak dapat dilaksanakan, terdapat penyelesaian:
Berhati-hati Berkenaan Menjalankan Skrip dalam Pakej
Guido van Rossum, pencipta Python, menganggap menjalankan skrip dalam pakej sebagai antipattern dan melihatnya sebagai tidak perlu. Walau bagaimanapun, untuk senario di mana ini perlu, penyelesaian di atas boleh digunakan.
Atas ialah kandungan terperinci Mengapa Import Relatif Python 3 Saya Gagal, dan Bagaimana Saya Boleh Membaikinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!