Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengimport Modul dari Subdirektori dalam Python?

Bagaimana untuk Mengimport Modul dari Subdirektori dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-11-23 15:55:19825semak imbas

How to Import Modules from Subdirectories in Python?

Mengimport Fail daripada Subdirektori

Mengimport modul luaran ialah amalan biasa dalam pembangunan Python. Walau bagaimanapun, apabila modul berada dalam subdirektori, mengimportnya memerlukan pendekatan khusus.

Pernyataan Masalah

Andaikan anda mempunyai fail bernama tester.py yang terletak di / direktori projek. Direktori ini mengandungi subdirektori yang dipanggil lib, yang menempatkan fail bernama BoxTime.py. Matlamat anda adalah untuk mengimport BoxTime ke dalam tester.py.

Percubaan dan Ralat Awal

Anda cuba mengimport BoxTime menggunakan kod berikut:

import lib.BoxTime

Walau bagaimanapun, ini mengakibatkan ImportError, kerana Python tidak dapat mencari modul yang dinamakan lib.BoxTime.

Penyelesaian: Melaksanakan Pakej

Untuk menyelesaikan isu ini, anda perlu menukar direktori lib kepada pakej Python. Ini melibatkan mencipta fail kosong bernama __init__.py di dalam direktori lib.

/project
    /tester.py
    /lib/__init__.py
    /lib/BoxTime.py

Fail __init__.py ini bertindak sebagai pemula pakej, memaklumkan Python bahawa direktori itu ialah pakej yang mengandungi modul Python.

Mengimport Modul dengan Betul

Setelah Fail __init__.py sudah tersedia, anda boleh mengimport BoxTime menggunakan salah satu daripada kaedah berikut:

import lib.BoxTime

atau

import lib.BoxTime as BT
BT.bt_function()

Kaedah kedua memperuntukkan BoxTime kepada pembolehubah BT, membenarkan anda untuk mengakses fungsinya menggunakan alias yang lebih pendek.

Atas ialah kandungan terperinci Bagaimana untuk Mengimport Modul dari Subdirektori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:RAG ChatbotArtikel seterusnya:RAG Chatbot