我在The Flask Mega-Tutorial Github Repo中引用此代码
flasky/
app.py
config.py
app/
__init__.py
...
...
我不能完全理解其中一句话
#__init__.py
...
from config import config
...
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
...
...
如何从包根外部的config.py
文件导入?
我确实找到了带有以下条目的Dockerfile
COPY flasky.py config.py boot.sh ./
这是什么意思?此行是否以某种方式将这些文件添加到PATH中?
为什么不简单地将config.py
文件放在/app
文件夹中?
答案 0 :(得分:1)
在Github上问了同样的问题,Miguel在这里回答: https://github.com/miguelgrinberg/flasky/issues/154#issuecomment-395907521
引用:
找到配置模块,因为它位于当前目录中。它从哪里导入都没有关系,该模块的完全限定位置只是模块名称。这实际上就是您可以从app import ...说出来的原因。找到该应用程序包是因为它位于当前目录中,与config相同。希望这可以澄清它。
再往下走:
您对“当前目录”的含义有误解。当前目录是一个操作系统概念,每个进程都有一个标记为当前目录的目录。默认情况下,进程的当前目录是启动应用程序的目录(但如果需要,应用程序本身可以更改此目录)。在这种情况下,您可以从flasky目录启动应用程序,对吗?这就是您的当前目录。您可以从任何Python模块中导入配置和应用程序而不会出现问题,因为当前目录位于Python导入路径中。
希望有帮助。