Pada artikel ini, kita akan melihat bagaimana menemukan modul tertentu dengan Python. Menemukan modul berarti menemukan direktori tempat modul diimpor. Saat kami mengimpor modul, juru bahasa Python mencari modul dengan cara berikut
- Pertama, ia mencari modul di direktori saat ini
- Jika modul tidak ditemukan di direktori saat ini, Python kemudian mencari setiap direktori di variabel shell PYTHONPATH. PYTHONPATH adalah variabel lingkungan, terdiri dari daftar direktori
- Jika itu juga gagal, python memeriksa daftar direktori yang bergantung pada instalasi yang dikonfigurasi pada saat Python diinstal
Sistem. path berisi daftar direktori saat ini, PYTHONPATH, dan default yang bergantung pada penginstalan. Kami akan membahas cara menggunakan ini dan metode lain untuk menemukan modul di artikel ini.
Dapatkan lokasi modul tertentu di Python menggunakan modul OS
Untuk modul Python murni, kita dapat menemukan sumbernya dengan module_name. __mengajukan__. Ini akan mengembalikan lokasi di mana modul itu. file py ada. Untuk mendapatkan direktori kita bisa menggunakan os. jalur. dirname() metode dalam modul OS. Sebagai contoh jika kita ingin mengetahui letak modul ‘random’ dengan menggunakan cara ini maka kita akan mengetikkan berikut ini pada file python
Piton
# importing random module
import random
# importing the os module
import os
# storing the path of modules file_
# in variable file_path_
file_path= import0
import1
import2 = import4
import5
import6import7import2import9
Keluaran
Dapatkan jalur sumber modul tertentu menggunakan sys. jalur
Untuk metode ini, kita akan menggunakan modul sys. Sistem. variabel path modul sys berisi semua direktori yang akan dicari modul saat runtime. Jadi dengan mengetahui direktori ini kita dapat memeriksa secara manual di mana modul khusus kita berada. Untuk mengimplementasikan ini kita harus menulis yang berikut di shell python. -
Piton
random_0
import random2
random_3
import6random5
Ini akan mengembalikan daftar semua direktori yang akan dicari modul saat runtime
Keluaran
['/rumah', '/usr/lib/python2. 7', '/usr/lib/python2. 7/plat-x86_64-linux-gnu’, ‘/usr/lib/python2. 7/lib-tk’,
'/usr/lib/python2. 7/lib-old', '/usr/lib/python2. 7/lib-dynload’, ‘/usr/local/lib/python2. 7/dist-paket’,
'/usr/lib/python2. 7/dist-paket’]
Dapatkan lokasi sumber modul tertentu menggunakan help(module_name)
Di shell python setelah kami mengimpor beberapa modul, kami dapat memperoleh berbagai informasi tentang modul menggunakan help(module_name). Sebagai contoh, jika kita ingin mengetahui letak modul os menggunakan metode ini kita akan mengetikkan perintah berikut di shell python
Piton
random_6
import os
random_9
import6import7# importing the os module2# importing the os module3
Di bawah berbagai informasi, kami akan menemukan tajuk dengan nama FILE di bawahnya yang akan menampilkan lokasi modul
Keluaran
…
/berbagai informasi lainnya/
…
MENGAJUKAN
C. \Users\lenovo\appdata\local\programs\python\python39\lib\os. py
Dapatkan lokasi modul tertentu di Python menggunakan modul inspeksi
Kami juga dapat menggunakan modul inspeksi dengan python untuk menemukan modul. Kami akan menggunakan inspeksi. getfile() metode pemeriksaan modul untuk mendapatkan path. Metode ini akan menggunakan nama modul sebagai argumen dan akan mengembalikan jalurnya. Misalnya, jika kita ingin mencari direktori modul os menggunakan metode ini, kita akan menulis kode berikut
Dalam Python terkadang Anda perlu mencari tahu di mana suatu fungsi berada di hard disk, atau file apa yang memanggil fungsi Anda. Modul os menyediakan alat untuk mendapatkan informasi file dan direktori dan modul menyediakan kemampuan untuk memeriksa tumpukan dan melihat modul apa yang memanggil fungsi Anda
Dapatkan informasi file tentang modul
Modul os di Python menyediakan banyak cara berguna untuk mendapatkan nama file tempat modul berada. Ada fungsi untuk mendapatkan nama file, nama direktori, dan mendapatkan jalur absolut. Lihat contoh ini
# Example assumes this file is named test.py# and lives in /home/nanodano/
# //docs.python.org/3/library/os.path.html
import os
# Prints the full path of where the os.py module resides
print(os.__file__)
# The name of file where this print statement is written
print(__file__)
# test.py
# Get the full absolute path using os.path.abspath()
print(os.path.abspath(__file__))
# /home/nanodano/test.py
# Get the directory name of a file with os.path.dirname()
print(os.path.dirname(__file__))
# Relative to current directory
# Prints an empty string if being run from current directory
# Prints . if being called from a deeper directory
# Combine to get absolute path of the directory containing the python file
print(os.path.abspath(os.path.dirname(__file__)))
# /home/nanodano
## Other functions that might be useful
# os.path.join() # Join directory names using system specific dir separator
# os.sep() # Path separator character (system specific)
# os.getcwd() # Full absolute path
# os.walk() # Generator to walk dirs recursively
# os.listdir() # Current dir or specific dir
Dapatkan modul dan nama file pemanggil
Dalam beberapa kasus, fungsi Anda dipanggil oleh kode dari yang lain. file py. Jika Anda ingin mengetahui dari mana fungsi Anda dipanggil, Anda dapat memeriksa tumpukan. Modul inspeksi menyediakan cara untuk mendapatkan data ini
import inspect# Import this to other module and call it
def print_caller_info():
# Get the full stack
stack = inspect.stack()
# Get one level up from current
previous_stack_frame = stack[1]
print(previous_stack_frame.filename) # Filename where caller lives
# Get the module object of the caller
calling_module = inspect.getmodule(stack_frame[0])
print(calling_module)
print(calling_module.__file__)
if __name__ == '__main__':
print_caller_info()_
Kesimpulan
Setelah membaca ini, Anda harus tahu cara mendapatkan nama file relatif dan absolut dari modul Python saat ini serta modul yang memanggil fungsi Anda