Module runpy hỗ trợ cơ chế python -m module - tìm và thực thi module như __main__ dùng namespace thay vì filesystem.
Hai hàm chính
run_module(mod_name, ...)
- Thực thi code của module, trả về dictionary globals
mod_name: tên module tuyệt đối- Nếu là package → import và chạy submodule
__main__ - Thiết lập
__name__,__spec__,__file__,__cached__,__loader__,__package__
run_path(path, ...)
- Thực thi code tại đường dẫn file, trả về globals
path: file .py, .pyc, hoặc entry có__main__.py(zip)- Thiết lập các biến đặc biệt tương tự
Ví dụ
File runpyexample.py:
def add(x, y):
return x + y
def main():
x, y = 10, 20
print(add(x, y))
if __name__ == '__main__':
main()
Cách thực thi thông thường
import runpyexample as rp rp.main() # 30
Dùng runpy.run_module()
import runpy
runpy.run_module('runpyexample', run_name='__main__') # 30
Dùng runpy.run_path()
runpy.run_path('runpyexample.py', run_name='__main__') # 30
Tương đương dòng lệnh
python -m runpyexample # 30
Ứng dụng
- Chạy module động theo tên chuỗi
- Plugin system, plugin loader
- Testing framework tự động khám phá và chạy test module