[英]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.