Ralat Import Relatif Python: Menyelesaikan masalah "Percubaan Import Relatif Melangkaui Pakej Peringkat Atas"
Dalam Python, import relatif membenarkan anda merujuk modul dalam pakej berbanding dengan direktori semasa. Walau bagaimanapun, percubaan import relatif melebihi pakej peringkat atas boleh mengakibatkan ralat "ValueError: percubaan import relatif melebihi pakej peringkat atas."
Pertimbangkan struktur pakej berikut:
package/ __init__.py A/ __init__.py foo.py test_A/ __init__.py test.py
Apabila melaksanakan test.py dalam direktori pakej menggunakan python -m test_A.test, anda menghadapi ralat di atas. Sebabnya ialah Python tidak menyimpan maklumat tentang pakej peringkat teratas di mana test_A.test terletak.
Apabila menggunakan dari ..A import foo, Python cuba mengakses direktori saudara ke lokasi yang dimuatkan. Walau bagaimanapun, dalam kes ini, tiada konsep direktori adik-beradik kerana pakej tidak diiktiraf sebagai pakej.
Sebaliknya, melaksanakan python -m package.test_A.test menyelesaikan import relatif dengan betul kerana Python boleh mengenal pasti pakej sebagai pakej peringkat teratas dan menavigasi direktori anaknya, test_A.
Walau bagaimanapun, kekurangan pengiktirafan Python terhadap direktori kerja semasa sebagai satu pakej kekal misteri. Walaupun kegunaannya, pengawasan ini boleh menyebabkan ralat apabila mencuba import relatif daripada direktori peringkat atas.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Percubaan Import Relatif Melangkaui Pakej Peringkat Atas\' Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!