从解释器访问 Flask wsgi 结构化应用程序
Accessing Flask wsgi structured app from interpreter
我有一个 Flask 应用程序,用于部署为 wsgi。我遇到的一个问题是当我想从 Python 解释器加载文件时。
结构是:
|----api
|---------api
|--------------static
|--------------templates
|--------------venv
|--------------models.py
|--------------...
所以在 Python 解释器中,当我加载目录中的文件时
api/api
我需要以 dir.filename
的身份访问它们。例如,如果我有一个文件 api/api/models.py
,我可以通过输入命令 from api.mb_models import db
... .然后我得到一个文件不存在的错误:
Traceback (most recent call last):
File "api/extract.py", line 15, in <module>
import api.models as models
ImportError: No module named api.models
我也试过如下设置 os 变量,
path = 'api'
os.chdir(path)
虽然它现在作为 wsgi 工作,但我在尝试从解释器加载时遇到了同样的错误。我目前可以将此设置为 运行 作为 wsgi 的唯一方法是不在我的导入语句中指定路径或使用 os 属性,当我在解释器中加载文件时它不起作用
问题是如何从 Python 解释器共享相同的部署配置作为 wsgi 应用程序和 运行ning。
注意:我使用的是虚拟环境。
编辑
我在我的文件导入中删除了所有对 dir
的引用,因此 wsgi 应用程序按预期运行,然后在解释器中 运行 os.cwd()
,这给了我预期的结果/Users/gms/development/python/api
。然后我使用 os.chdir('/Users/gms/development/python/api/api')
、运行 os.cwd()
设置工作目录并获得工作目录所需的结果,但是当我尝试从口译员。
我明白了。我需要在解释器中设置这些:
import sys
sys.path.append('working path here')
而且,瞧,一切都按预期进行。
我有一个 Flask 应用程序,用于部署为 wsgi。我遇到的一个问题是当我想从 Python 解释器加载文件时。
结构是:
|----api
|---------api
|--------------static
|--------------templates
|--------------venv
|--------------models.py
|--------------...
所以在 Python 解释器中,当我加载目录中的文件时
api/api
我需要以 dir.filename
的身份访问它们。例如,如果我有一个文件 api/api/models.py
,我可以通过输入命令 from api.mb_models import db
... .然后我得到一个文件不存在的错误:
Traceback (most recent call last):
File "api/extract.py", line 15, in <module>
import api.models as models
ImportError: No module named api.models
我也试过如下设置 os 变量,
path = 'api'
os.chdir(path)
虽然它现在作为 wsgi 工作,但我在尝试从解释器加载时遇到了同样的错误。我目前可以将此设置为 运行 作为 wsgi 的唯一方法是不在我的导入语句中指定路径或使用 os 属性,当我在解释器中加载文件时它不起作用
问题是如何从 Python 解释器共享相同的部署配置作为 wsgi 应用程序和 运行ning。
注意:我使用的是虚拟环境。
编辑
我在我的文件导入中删除了所有对 dir
的引用,因此 wsgi 应用程序按预期运行,然后在解释器中 运行 os.cwd()
,这给了我预期的结果/Users/gms/development/python/api
。然后我使用 os.chdir('/Users/gms/development/python/api/api')
、运行 os.cwd()
设置工作目录并获得工作目录所需的结果,但是当我尝试从口译员。
我明白了。我需要在解释器中设置这些:
import sys
sys.path.append('working path here')
而且,瞧,一切都按预期进行。