动态地将新文件添加到现有python进程

时间:2015-09-02 21:24:00

标签: python django

我们将Django用于项目。在1.7+之前,我们能够在执行setup.py时动态地将文件拉入我们的python环境。例如,我们有这个目录结构:

/foo/bar
/foo/bar/__init__.py
/foo/bar/my_functions.py

我们的Django项目对这些文件一无所知。当Web服务器启动并且读取了setup.py时,我们会查看一个配置,告诉我们在哪里可以找到要添加到我们环境中的文件。再次,让我们假设/foo/bar在我们的配置中是动态加载的。然后我们将使用import_module()导入它,以便/foo/bar下的任何内容基本上成为项目的一部分并可以使用。它基本上是一个"插件"特征

在Django> = 1.7之后,这会导致很大的问题,主要是:

django.core.exceptions.AppRegistryNotReady: The translation infrastructure
cannot be initialized before the apps registry is ready. Check that you
don't make non-lazy gettext calls at import time.

它还限制了我们动态添加新文件的能力,因为您始终必须将它们放置到位并重新启动Web服务器。你不可能有一个"上传插件"例如,将新文件添加到服务器的页面。

有没有办法在Web服务器启动期间以及启动后添加这样的文件而不重新启动它?

0 个答案:

没有答案