Python 子包结构的根路径
我正在寻找关于使用多个包(包括flask项目)建立python回购的建议。这可能是一个docker问题,就像python/flask问题一样,所以我愿意接受任何有助于解决这一问题的模式 我的应用程序结构是这样的(注意:这看起来像命名空间打包,但我已经配置了Python 子包结构的根路径,python,docker,flask,Python,Docker,Flask,我正在寻找关于使用多个包(包括flask项目)建立python回购的建议。这可能是一个docker问题,就像python/flask问题一样,所以我愿意接受任何有助于解决这一问题的模式 我的应用程序结构是这样的(注意:这看起来像命名空间打包,但我已经配置了setup.py以便每个包都有自己的命名空间): 但是从开发的角度来看,我对这种模式有一些问题。基本上我知道我可以用Flask(\uuuuu name\uuuuuu,root\u path='/app/src/my\u Flask\u app)
setup.py
以便每个包都有自己的命名空间):
但是从开发的角度来看,我对这种模式有一些问题。基本上我知道我可以用Flask(\uuuuu name\uuuuuu,root\u path='/app/src/my\u Flask\u app)
覆盖root\u path
,让它找到合适的源目录。但是,这需要根据我是在Docker映像中运行还是在本地运行来更改
例如,如果我打印本地运行的app.root\u路径
(不修改),我会看到/Users/username/Documents/my\u app/src/my\u flask\u app
。如果我在docker中运行此程序,它必须是/app/src/my_flask\u app
,才能正常工作(默认为/app/my_flask\u app
,未经修改,已损坏)
我的主要问题是:是否有一些简单的方法来处理这个问题,构造项目/dockerfile来实现这一点,这样我就不必在本地和docker运行实例之间不断更改它了?我应该改用Flask(instance_path=)吗?解决了这个问题,这似乎对docker和local都适用:
import os
from flask import Flask
app = Flask(__name__, root_path=os.path.join(os.getcwd() + '/src/my_flask_app'))
import os
from flask import Flask
app = Flask(__name__, root_path=os.path.join(os.getcwd() + '/src/my_flask_app'))