我有一个应用程序要求用户具有一定的目录结构,就像 django 对 templatetags 所做的那样,我想知道如何在运行时从 django 项目中导入名为 foo 的应用程序?
此外,如果应用程序存在,我如何导入应用程序 foo 的特定模块?
问问题
134 次
1 回答
2
我认为您的问题需要一些澄清细节。目前看起来就像将应用程序(你的意思是一个 django 应用程序?)放在你的 pythonpath 上(例如在项目目录中)一样简单:
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 的辅助方法(它使用__import__
)
于 2011-03-07T05:27:33.593 回答