use*_*r44 7 python architecture module projects-and-solutions python-2.7
我的项目包含三个Python应用程序.应用程序1是一个Web应用程序.应用程序2和3包含下载某些数据的脚本.
这三个应用程序都需要使用包含"模型"(保存到数据库的类)和常用设置的模块Common.
我不知道如何构建这个项目.我可以创建三个目录,每个应用程序一个,并将Common复制三次到他们的目录中(似乎不对).
想到的另一个想法是; 创建一个主目录并将Common中的所有文件放在那里,包括__init__.py.然后,克里特三个子目录(子模块),每个应用程序一个.
另一种方法是使用pip 安装Common,但这意味着每次我更改该模块中的某些内容时我都必须重新安装.
在之前的项目中,我使用了.NET - 相当于该世界将是一个包含四个项目的解决方案,其中一个是Common.
有什么建议?
我有一个像这样设置的类似项目
project_root/
App1/
__init__.py
FlaskControlPanel/
app.py
static/
templates/
models/
__init__.py
mymodels.py
Run Code Online (Sandbox Code Playgroud)
然后,我运行一切project_root.我有一个小脚本(批处理或shell,取决于我的环境)设置,PYTHONPATH=.以便导入正常工作.这样做是因为我通常使用PyCharm开发,其中导入"只是工作",但是当我部署最终产品时,路径与我在IDE中的路径不匹配.
一旦PYTHONPATH设置为包含项目根目录中的所有内容,就可以执行标准导入.
例如,从我的FlaskControlPanel app.py,我有这一行:
from models.mymodels import Model1, Model2, Model3
Run Code Online (Sandbox Code Playgroud)
从App1 __init__.py我有完全相同的import语句:
from models.mymodels import Model1, Model2, Model3
Run Code Online (Sandbox Code Playgroud)
我可以通过在我的命令行(在Windows中)运行它来启动Flask应用程序,而我在project_root目录中:
setlocal
SET PYTHONPATH=.
python FlaskControlPanel\app.py
Run Code Online (Sandbox Code Playgroud)
将setlocal用于确保PYTHONPATH只修改本次会议.
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |