簡體   English   中英

importlib 不適用於子目錄中的文件

[英]importlib not working for files in subdirectory

我有一個這樣的目錄結構:

__init__.py
test.py
dir1/
    __init__.py
    dir2
        __init__.py
        myfile.py

dir2 中可能有更多 py 文件。 所以我想在運行時導入它們並加載這些文件中定義的所有類。

測試.py:

import inspect
import importlib

module = importlib.import_module('dir1/dir2/myfile.py')
for name, obj in inspect.getmembers(module):
    if inspect.isclass(module):
        print(obj.id)   # id is defined in all the classes

這在執行 import_module 時給了我錯誤:

ModuleNotFoundError: 沒有名為“dir1/dir2/myfile”的模塊

我試圖將 dir1/dir2 路徑附加到 sys.path 然后導入 myfile.py,這也不起作用。 類似的代碼工作是 myfile.py 放置在與 test.py 相同的級別。

Python 版本:3.7

只是為了清楚起見重申:

import_module()只接受帶點的模塊路徑,不接受文件名。 例如, importlib.import_module('dir1.dir2.myfile')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM