Bagaimana untuk Mengimport Modul dari Subdirektori dalam Python?

Susan Sarandon
Lepaskan: 2024-11-23 15:55:19
asal
714 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

atau

import lib.BoxTime as BT
BT.bt_function()
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan