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 .py
ekstensi 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/pythonfiles
dan 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.py
dengan:
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_package
dalam /home/myname/pythonfiles
, tambahkan /home/myname/pythonfiles
path 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 $PYTHONPATH
secara permanen:
Tambahkan baris berikut ke ~/.profile
file 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 subfolder
di dalam folder packagename
:
import packagename.subfolder.module_3
Mengingat fakta bahwa semua subfolder dalam paket menyertakan __init__.py
file 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.py
dan module.py
, saya cukup mengimpor modul dengan:
import module
__init__.py
file di folder Anda? ini adalah cara python membuat paket dan memungkinkan Anda untuk mengimpor modul dari paket itu. guide.python-distribute.org/creation.html