У меня есть проект колбы для отдыха со следующей компоновкой (имена файлов изменены для удобства)
myproject/
__init__.py
app.py
common/
__init__.py
util.py
foo/
__init__.py
main.py
utilities.py
foo/
- это просто папка, содержащая код для одной из конечных точек API, я планируюдобавьте другие в будущем, по этой причине у меня есть файл common/util.py
, который содержит многократно используемые функции, которые я буду использовать с другими конечными точками API.
foo/main.py
from flask_restful import Resource, request
from utilities import Analysis
class Foo(Resource):
def get(self):
pass
в foo/utilities.py
У меня есть классы с методами, которые получают некоторые данные, я импортирую эти классы в foo/main.py
, чтобы вернуть ответ JSON
Классы в foo/utilities.py
также используют некоторые функции из common/util.py
, но когда япопробуйте импортировать что-то из common/util.py
в foo/utilities.py
Я получаю import common.util
ModuleNotFoundError: No module named 'common'
Что может быть причиной этого?Я пытался импортировать различными способами: from common.util import my_func
from .common.util import my_func
from myproject.common.util import my_func
, но ни один не работал.
Это myproject/app.py
в случае, если это имеет значение:
from flask import Flask
from flask_restful import Api
from foo.main import Foo
app = Flask(__name__)
api = Api(app)
api.add_resource(Foo, '/Foo')
if __name__ == "__main__":
app.run()
Я делаю все это в активированном virtualenv, если это имеет значение