Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การค้นหาโมดูลที่ใช้โดยสคริปต์ Python (ตัวค้นหาโมดูล)


คลาส ModuleFinder ในโมดูล 'modulefinder' สามารถกำหนดชุดของโมดูลที่นำเข้าโดยสคริปต์บางตัว โมดูลนี้มีอินเทอร์เฟซบรรทัดคำสั่งและอินเทอร์เฟซแบบเป็นโปรแกรม

สำหรับการสาธิตการใช้งาน ให้ใช้สคริปต์ต่อไปนี้

#modfinder.py
import hello
try:
   import trianglebrowser
   import nomodule,mymodule
except ImportError:
   pass

อินเตอร์เฟสบรรทัดคำสั่ง

คำสั่งต่อไปนี้แสดงรายการโมดูลที่อยู่และไม่พบ

E:\python37>python -m modulefinder modfinder.py

ผลลัพธ์

Name File
---- ----
m __main__ modfinder.py
m hello hello.py
m math
m trianglebrowser trianglebrowser.py

Missing modules:
? mymodule imported from __main__
? nomodule imported from __main__

อินเทอร์เฟซแบบเป็นโปรแกรม

ModuleFinder class ในโมดูลนี้มีเมธอด run_script() และ report() เพื่อกำหนดชุดของโมดูลที่นำเข้าโดยสคริปต์

รายงาน()

เมธอดนี้จะพิมพ์รายงานไปยังเอาต์พุตมาตรฐานซึ่งแสดงรายการโมดูลที่นำเข้าโดยสคริปต์และพาธของโมดูล ตลอดจนโมดูลที่ขาดหายไปหรือดูเหมือนว่าจะหายไป

run_script()

วิธีนี้จะวิเคราะห์เนื้อหาของไฟล์ที่กำหนด ซึ่งต้องมีโค้ด Python

โมดูล

นี่คือชื่อโมดูลการแมปพจนานุกรมกับโมดูล

โมดูลที่ไม่ดี

นี่คือรายการโมดูลที่ไม่สามารถโหลดได้

ตัวอย่าง


import modulefinder
modfind=modulefinder.ModuleFinder()
modfind.run_script('modfinder.py')
print ('Modules loaded:')
for k,v in modfind.modules.items():
   print (k,v)
print ('not found:')
for i in modfind.badmodules.keys():
   print (i)

ผลลัพธ์

Modules loaded:
__main__ Module('__main__', 'modfinder.py')
hello Module('hello', 'E:/python37\\hello.py')
trianglebrowser Module('trianglebrowser', 'E:/python37\\trianglebrowser.py')
math Module('math')
not found:
nomodule
mymodule