我有一个Flask应用程序,用于部署为wsgi。我有一个问题,当我想从Python解释器加载文件。从解释器访问Flask wsgi结构化应用程序
结构为:
|----api
|---------api
|--------------static
|--------------templates
|--------------venv
|--------------models.py
|--------------...
因此,在Python解释器,当我在目录 api/api
我需要访问他们为dir.filename
加载文件。例如,如果我有一个文件,api/api/models.py
,我可以通过输入命令from api.mb_models import db
...来加载它,但是,当我通过Web服务器运行wsgi应用程序时,此语法会窒息。然后我得到一个错误,该文件不会退出:
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属性中指定路径,当我在解释器中加载文件时这不起作用
问题是如何共享与wsgi应用程序相同的配置以及从Python解释器运行的相同配置。
注意:我正在使用虚拟环境。
编辑
我删除的dir
所有引用我的文件导入,从而期望的WSGI应用程序是否正常工作,然后在翻译中,这给了我的/Users/gms/development/python/api
预期的结果跑了os.cwd()
。然后我使用os.chdir('/Users/gms/development/python/api/api')
设置工作目录,运行os.cwd()
并获得了工作目录的所需结果,但是当我尝试从解释器加载时,仍然收到ImportError: No module named extract
。