У меня есть такая структура пакета:
project/
└── src
├── __init__.py
└── App.py
Это файл __ init __ :
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
И App.py file:
from . import app, api
from flask_restful import Resource
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
В первой строке App.py я пытаюсь импортировать app и api из текущего пакета, но когда я запускаю приложение с
python src/App.py
itпечатает:
Traceback (most recent call last):
File "src/App.py", line 2, in <module>
from src import app, api
ModuleNotFoundError: No module named 'src'
Как я могу решить проблему, не меняя идею структуры, которую я хочу.Я знаю, что мог бы создать другой подкаталог / подпакет и переместить туда init .py, затем использовать from subpackage import app, api
, и это сработало бы.Но я не хочу этого, я хочу сохранить структуру.
Также, когда я говорю:
from __init__ import app, api
, это работает, но код уродлив на этом этапе.