我有一个基本的烧瓶安息应用程序,其结构与烧瓶网站上的建议类似。
/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 *
我的问题有两个:
答案 0 :(得分:1)
Python 3.x放弃了对infra-package相对导入的支持。您需要使用绝对导入:
from application import config
或new spelling of relative imports:
from . import config
如果您还需要支持旧版本的Python,则可以通过以下方式启用此行为:
from __future__ import absolute_import