0
我有一個基本的燒瓶安靜的應用程序,其結構看上去像燒瓶網站上推薦的那樣。燒瓶uWSGI應用程序結構和python3導入
/application
/application
/config.py
/__init__.py
/wsgi.ini
稍微不相干,但config.py
是由我們的CD服務器生成。
wsgi.ini
看起來喜歡這個
[uwsgi]
module = application:app
master = true
processes =5
socket = /tmp/application.sock
chmod-socket = 660
vacuum = true
die-on-term = true
和__init__.py
看起來像這樣
import config
from flask import Flask, request, g
from flask_restful import Resource, Api, abort
app = Flask(__name__)
api = Api(app)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
現在,當我嘗試使用uwsgi --ini wsgi.ini
我得到這個錯誤來啓動應用程序:
File "./application/__init__.py", line 2, in <module>
import config
原來__init__.py
被稱爲main.py
,我執行它來調試,這就是爲什麼導入現在是錯誤的。我想我需要改變進口是from .config import *
我的問題是雙重的:
- 難道我已經完全避免了進口問題。即有沒有辦法在python3導入兄弟模塊,這將適用於這兩種方法
- 是我的wsgi.ini在正確的地方,或者它應該在內部應用程序目錄?
謝謝對於答案,但它並沒有真正解決這個問題。如果我的wsgi.ini位於內部應用程序文件夾之外,這種導入方法將工作,我不確定是否是正確的位置。有沒有一種方法可以執行導入,無論wsgi是否位於內部應用程序文件夾外? – Leon
'wsgi.ini'的位置是不相關的。你如何運行uWSGI?您可能需要在'wsgi.ini'中設置'chdir'和/或'pythonpath'。 – dirn