Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Định vị và thực thi module Python với runpy

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