具有多个系统的Python文件夹结构

时间:2017-05-31 09:54:50

标签: python

我正在尝试重构一个大型项目,以便我可以在使用luigi任务编写的web前端应用程序和使用luigi任务的自动后端中重用一组核心代码。

所以我有两个客户端,我想在它们之间共享代码,以便访问数据库并从web或luigi执行一些自动化任务。

保持这三个组织和结构化的好方法是什么,这样我就可以轻松地将核心模块导入到任一项目中。

我遇到了一些问题让Luigi识别出与它平行的模块。

1 个答案:

答案 0 :(得分:0)

从技术上讲,重新使用代码的唯一要求是共享模块的Python文件(“核心代码集”)是通过执行解释器的sys.path找到的,例如,通过将相应的目录添加到PYTHONPATH环境变量中。这使您可以将它们用作模块。但是,您必须根据版本控制方案以及如何部署Web应用程序和客户端来评估项目布局的更改。通常,我认为你必须使用以下经验法则。

  • 将共享代码模块作为单独的项目进行管理。特别是,如果依赖客户端和Web应用程序的生命周期没有捆绑在一起。
  • 将共享核心模块视为库或框架。我不应该依赖Web应用程序或客户端的实现细节。通常,您需要提供一些入口点和配置挂钩。
  • 以共享核心模块作为相应客户端/应用程序的依赖项的方式更改部署。根据您的设置和使用情况,可能性很大。例如,您可以使用setuptools构建可安装pip的包。