Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengimport Modul dari Direktori Berbeza dalam Python?

Bagaimanakah Saya Boleh Mengimport Modul dari Direktori Berbeza dalam Python?

DDD
DDDasal
2024-12-20 05:14:16412semak imbas

How Can I Import a Module from a Different Directory in Python?

Mengimport Modul Luaran daripada Direktori Berbeza

Anda menghadapi kesukaran mengimport fungsi daripada fail tertentu dalam satu direktori ke dalam fail lain yang terletak dalam direktori yang berbeza. Walaupun menggunakan sintaks daripada application.app.folder.file import func_name, import gagal.

Memahami Laluan Carian Modul Python

Secara lalai, Python mencari modul ( iaitu fail yang mengandungi fungsi dan kelas) dalam:

  • Direktori mengandungi skrip yang sedang dijalankan.
  • Lokasi yang dinyatakan dalam laluan sistem (sys.path).

Percubaan anda untuk mengimport fail daripada direktori lain gagal kerana fail sasaran ialah bukan dalam mana-mana laluan carian tersebut.

Mengubah Carian Modul Laluan

Untuk menyelesaikan masalah ini, anda boleh menambah direktori yang mengandungi fail sasaran ke sys.path secara dinamik. Ini akan menyedarkan Python tentang lokasi baharu untuk mengimport modul.

Menambah Direktori pada sys.path

Dalam fail yang anda ingin mengimport fungsi (some_file .py dalam kes anda), tambah baris berikut pada permulaan fail:

import sys

# sys.path[0] is reserved for the script path, so insert the new path at index 1
sys.path.insert(1, "/path/to/application/app/folder")

Barisan ini memasukkan laluan direktori yang ditentukan ke dalam sys.path, memberitahu Python untuk mencari modul dalam direktori itu juga.

Mengimport Modul

Selepas menambah direktori pada sys.path, anda boleh mengimport modul (file.py dalam kes anda) seperti berikut:

import file

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Modul dari Direktori Berbeza 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