[英]python importlib no module named
我正在使用燒瓶並具有以下結構
<root>
manage_server.py
cas <directory>
--- __init__.py
--- routes.py
--- models.py
--- templates <directory>
--- static <directory>
--- formmodules <directory>
------ __init__.py
------ BaseFormModule.py
------ Interview.py
在routes.py中,我正在嘗試在Interview模塊中創建Interview類的實例,就像這樣
my_module = "Interview"
module = importlib.import_module('formmodules."+my_module)
我在這里得到一個錯誤
ImportError: No module named formmodules.Interview
有關init文件的一些信息:
/cas/formmodules/__init__.py is empty
/cas/__init__.py is where I initialize my flask app.
如果知道任何這些文件的內容是否有幫助,請告訴我。
這是經典的相對與絕對導入問題之一。
formmodules
僅相對於cas
存在,但import_module
執行絕對導入(與from __future__ import absolute_imports
)。 由於無法通過sys.path
找到formmodules
,導入失敗。
解決此問題的一種方法是使用相對導入 。
如果以相對術語指定名稱,則必須將package參數指定給包,該包用作解析包名稱的錨點。
您可能想嘗試:
module = importlib.import_module('.formmodules.' + my_module, package=__package__)
請注意.
。
另一種選擇是使用sys.path
這個問題,這里沒有必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.