簡體   English   中英

python importlib沒有命名的模塊

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

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