Я пытаюсь импортировать класс python из другой папки моего пакета python, но я эту ошибку «No module named models».импортировать класс python в другую папку в пакете
Это проект в колбе.
-app
|-run.py
|-myapp
|- libs
|- updateto
|- __init__.py (empty)
|- connection.py
|- removeto
|- __init__.py (empty)
|- static
|- templates
|- __init__.py (NOT empty)
|- routes.py
|- models.py
Моего INIT .py:
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///maindb.db'
from models import db
db.init_app(app)
import myapp.routes
В моем models.py У меня есть класс с именем: применение
И в connection.py я хочу импортировать мой класс «приложения ». Я попытался использовать «из приложения импорта моделей», но у меня есть эта ошибка «без модулей с именем модели».
Я думаю, что достичь этой цели можно с помощью изменения init.py в папке «updateto», но я не уверен, потому что я не понимаю, как работает файл init .py. ..
Благодаря
EDIT:
что странно, это если под connection.py добавить "импорт MyApp" и "печать (помощь (MYAPP))", Я этот вывод:
Help on package myapp:
NAME
myapp
FILE
c:\app\myapp\__init__.py
PACKAGE CONTENTS
libs (package)
models
routes
DATA
app = <Flask 'myapp'>
Но если я пытаюсь «из импортных моделей MYAPP» Я эту ошибку «ImportError: не может импортировать модели название»
EDIT2:
Если я пытаюсь добавить в connection.py «от импорта приложения MYAPP «, это работает, но нет, если я пытаюсь импортировать модели ... Я очень удивлен. Я пытаюсь добавить в MyApp/INIT .py:
__all__ = ["models", "routes]
Но ту же ошибку ...
EDIT3:
hummmm Я переместить все мои модули в папке Libs в myapp, и когда я пытаюсь установить connection.py «из приложения импорта модели», у меня всегда такая же ошибка «ImportError: не может импортировать заявку на использование имени»
Другие испытания in connection.py:
import models
print(models)
Output:
<module 'myapp.models' from 'C:\app\myapp\models.pyc'>
я могу импортировать мой модуль с именем модели, но я не могу импортировать класс под models.py
EDIT4:
Хорошо, я думаю, что я нашел эту проблему. Это мой ini .py в myapp, потому что, если я прокомментирую содержимое этого файла, connection.py теперь может импортировать мое приложение класса в модели. Я запускаю файл run.py, который использует routes.py, и это он вызывает операцию.ру
С некоторыми тестами, я найти линии, которые создают свою ошибку:
from models import db
db.init_app(app)
import myapp.routes
Но почему ????
Это может быть проблема, связанная с пути импорта. Можете ли вы рассказать нам, как вы загружаете файл 'connection.py'? Вы запускаете его из каталога 'updateto'? – jorgerivera
В моем приложении колба нет. Это файл routes.py, который вызывает connection.py при запуске run.py. – Matt