擅长:python、mysql、java
<p>我们最终忍痛割爱,改变我们做事的方式。现在在Django配置中传递查找模块的目录列表,并将每个目录添加到系统路径(类似于阿雅提到的一句话,也是我之前做过但不太满意的事情)。然后,对于它内部的每个模块,我们检查一个<code>__init__.py</code>,如果它存在,尝试将它作为一个模块来使用,而不使用<code>foo.bar</code>块。在</p>
<p>这需要对我们如何与模块交互以及开发人员如何编写模块进行一些调整(他们现在需要在模块内使用相对导入,而不是以前使用的完整路径导入),但我认为这将是开发人员更容易长期使用的设计。在</p>
<p>我们没有将这些添加到已安装的应用程序中,因为我们进行了一些异常处理,如果由于依赖关系问题或错误代码而无法导入模块,则软件将继续运行,而不使用该模块。如果它们安装在已安装的应用程序中,我们就无法在何时/如何处理这些异常时利用这种灵活性。在</p>
<p>谢谢你的帮助!在</p>