我有一个应用程序,要求用户拥有一个特定的目录结构,就像django对模板标签一样,我想知道的是如何在运行时从django项目导入名为foo的应用程序?
此外,如果应用程序存在,如何导入应用程序foo的特定模块?
答案 0 :(得分:2)
我认为您的问题需要一些澄清细节。目前看起来就像在python路径上放置应用程序(你的意思是django应用程序吗?)一样简单(例如在项目目录中):
try:
import foo
except ImportError:
pass # application mustn't be on pythonpath
else:
from foo import specific_module
# do stuff
根据您的要求,此代码可以在视图中,甚至可以在项目__init__.py
中,如果您希望它很早发生的话。 django启动过程的改进即将推出 - 密切关注startup.py
功能。
如果您需要导入具有动态名称的模块,您可能需要查看__import__
你在django中也有一个名为django.utils.importlib.import_module的helper方法(使用__import__
)