我正在使用 CherryPy 开发多个 Web 服务。其中一些必须使用相同的代码部分,所以我想避免代码重复。
我希望 CherryPy WebServer 为安装在不同 url 上的所有应用程序提供服务。
这就是我组织文件层次结构的方式(当然这是一个简化版本):
apps/
server.py -- runs the WSGI Server
app1/
api/
lib/
ext/
app.py -- provides a function get_wsgi_app(name, config)
app2/
api/
lib/
ext/
app.py
common/ -- All common classes and modules
考虑 server.py 是入口点。它导入每个 app.py 并从中获取一个 WSGI 应用程序。然后它安装它们以提供服务。
我希望能够从 common/ 导入一些类,但无需多次更改 sys.path。所以我认为我可以在 ext.js 中导入所需的模块。当我在应用程序中需要它们时,我只需要进行如下导入:
from ext.share_module import class
1 - 你认为文件层次结构好吗?
2 - 我希望每个应用程序都独立于服务器和其他应用程序。因此,对于导入,我希望能够简单地认为 app1/ 是根文件夹而不是 apps/ 。但是因为 server.py 是入口点,所以我不能像我想要的那样导入模块。
3 - 任何建议、考虑或建议?:)