我有一個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
。