0

我有一个应用程序要求用户具有一定的目录结构,就像 django 对 templatetags 所做的那样,我想知道如何在运行时从 django 项目中导入名为 foo 的应用程序?
此外,如果应用程序存在,我如何导入应用程序 foo 的特定模块?

4

1 回答 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 回答