我的项目包含三个 Python 应用程序。 应用程序 1 是一个网络应用程序。 应用程序 2 和 3 包含下载一些数据的脚本。
所有三个应用程序都需要使用包含“模型”(保存到数据库的类)和通用设置的通用模块。
我不知道如何构建这个项目。我可以创建三个目录,每个应用程序一个,然后将 Common 复制三次到它们的目录中(看起来不对)。
我想到的另一个想法是;创建一个主目录并将所有来自 Common 的文件放在那里,包括 __init__.py。然后,创建三个子目录(子模块),每个应用一个。
另一种方法是使用 pip 安装 Common,但这意味着我每次更改该模块中的内容时都必须重新安装。
在以前的项目中,我使用 .NET - 在那个世界中,等效项是包含四个项目的解决方案,其中一个是 Common。
有什么建议吗?
最佳答案
我有一个类似的项目是这样设置的
project_root/
App1/
__init__.py
FlaskControlPanel/
app.py
static/
templates/
models/
__init__.py
mymodels.py
然后,我从 project_root
运行所有内容。我有一个设置 PYTHONPATH=.
的小脚本(批处理或 shell,具体取决于我的环境),以便导入正常工作。这样做是因为我通常使用 PyCharm 进行开发,其中导入“正常工作”,但是当我部署最终产品时,路径与它在我的 IDE 中所做的不匹配。
一旦 PYTHONPATH
设置为包含项目根目录中的所有内容,您就可以执行标准导入。
例如,在我的 FlaskControlPanel app.py
中,我有这一行:
from models.mymodels import Model1, Model2, Model3
从 App1 __init__.py
我有完全相同的导入语句:
from models.mymodels import Model1, Model2, Model3
当我在 project_root
目录中时,我可以通过从命令行(在 Windows 中)运行它来启动 Flask 应用程序:
setlocal
SET PYTHONPATH=.
python FlaskControlPanel\app.py
setlocal
用于确保仅针对此 session 修改 PYTHONPATH
。
关于python - 如何使用三个使用公共(public)模块的应用程序构建一个 python 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25464649/