Mengimport Fail daripada Subdirektori
Mengimport fail daripada subdirektori boleh menjadi cabaran biasa apabila mengatur kod Python. Seseorang mungkin menghadapi ralat import semasa cuba mengakses fail yang berada dalam subdirektori. Artikel ini menangani isu ini dan menyediakan penyelesaian.
Senario
Pertimbangkan struktur projek di mana fail dipanggil tester.py terletak dalam direktori bernama /project. Dalam direktori /project terdapat subdirektori bernama lib, yang mengandungi fail bernama BoxTime.py. Objektifnya adalah untuk mengimport BoxTime daripada tester.py.
Percubaan Gagal
Percubaan untuk mengimport BoxTime menggunakan kod berikut mengakibatkan ralat:
import lib.BoxTime
Ini mengembalikan yang berikut traceback:
Traceback (most recent call last): File "./tester.py", line 3, in <module> import lib.BoxTime ImportError: No module named lib.BoxTime
Penyelesaian
Penyelesaian terletak pada mencipta fail khas bernama __init__.py dalam subdirektori lib. Fail ini penting untuk Python mengenali lib sebagai pakej, membenarkan import fail dari dalam subdirektori. Setelah fail __init__.py tersedia, fail dalam subdirektori lib boleh diimport menggunakan sintaks berikut:
import lib.BoxTime
Sebagai alternatif, untuk mengelakkan merujuk BoxTime sebagai lib.BoxTime, anda boleh menggunakan sintaks berikut:
import lib.BoxTime as BT ... BT.bt_function()
Dengan mencipta fail __init__.py dalam subdirektori, Python mengenalinya sebagai pakej, memudahkan pengimportan modul daripada subdirektori.
Atas ialah kandungan terperinci Bagaimana untuk Mengimport Fail dari Subdirektori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!