Bagaimana python menemukan modul-modulnya
Modul yang diambil dengan ketat, adalah file python tunggal, sedangkan paket adalah folder yang berisi file python, disertai dengan file (bisa kosong) bernama __init__.py, untuk memberi tahu python itu adalah paket untuk mengimpor modul dari. Dalam kedua kasus, modul memerlukan .pyekstensi mereka , tetapi mengimpornya dilakukan tanpa (lihat lebih lanjut di bawah).
Secara default, Python mencari modul dan paketnya di $PYTHONPATH.
Untuk mengetahui apa yang termasuk dalam $ PYTHONPATH, jalankan kode berikut dalam python (3):
import sys
print(sys.path)
Cara menambahkan direktori
Kadang
Dari dalam file python, Anda dapat menambahkan path sesekali ke path default dengan menambahkan baris berikut di bagian kepala aplikasi atau skrip python Anda:
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
Sebagai contoh:
jika saya memiliki folder:, /home/myname/pythonfilesdan saya ingin mengimpor file module_1.py, terletak di direktori itu, saya menambahkan ini ke bagian kepala kode saya:
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
Dan saya cukup mengimpor file module_1.pydengan:
import module_1
Ketika saya membuat paket dan ingin mengimpor modul dari paket, saya harus membuat folder $PYTHONPATH, berisi modul, disertai dengan file (dapat kosong) yang disebut__init__.py
Sebagai contoh:
Untuk mengimpor dari paket (folder) yang disebut my_packagedalam /home/myname/pythonfiles, tambahkan /home/myname/pythonfilespath ke Anda $PYTHONPATH, seperti dalam contoh 1, dan mengimpor modul yang disebut module_2.py(dalam folder paket) hanya dengan: `
from <packagename> import module_2
Menambahkan direktori ke $PYTHONPATHsecara permanen:
Tambahkan baris berikut ke ~/.profilefile Anda .
export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add
Subdirektori
Dari dalam suatu paket, subdirektori tidak dimasukkan begitu saja; Anda perlu "rantai" direktori. Untuk mengimpor modul module_3.py, folder subfolderdi dalam folder packagename:
import packagename.subfolder.module_3
Mengingat fakta bahwa semua subfolder dalam paket menyertakan __init__.pyfile mereka sendiri .
Ketika sebuah modul berada di direktori yang sama dengan skrip atau aplikasi
Tidak perlu menyisipkan jalur ke modul ketika berada di direktori yang sama dengan skrip atau aplikasi, secara otomatis ditambahkan.
Contoh:
Jika saya memiliki folder, berisi script.pydan module.py, saya cukup mengimpor modul dengan:
import module
__init__.pyfile di folder Anda? ini adalah cara python membuat paket dan memungkinkan Anda untuk mengimpor modul dari paket itu. guide.python-distribute.org/creation.html