Я получаю раздражающую ошибку импорта при попытке импортировать переменную в файл __init__.py
. Я приложил файлы и мою структуру каталогов:python packaging вызывает importerror
#/home/me/app/app/__init__.py
from flaskext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
#/home/me/app/app/models/__init__.py
from datetime import datetime
from app import db
#shell
[[email protected] app]$ pwd
/home/me/app
[[email protected] app]$ ./manage.py
/home/me/app/app/__init__.pyc
Traceback (most recent call last):
File "./manage.py", line 7, in <module>
from app import app
File "/home/me/app/app/__init__.py", line 3, in <module>
from app.views.post import post
File "/home/me/app/app/views/post.py", line 4, in <module>
from app.models import Post
File "/home/me/app/app/models/__init__.py", line 5, in <module>
from app import db
ImportError: cannot import name db
[[email protected] app]$ tree
.
├── apikey.txt
├── manage.py
├── app
│ ├── forms
│ │ ├── __init__.py
│ │ └── __init__.py~
│ ├── __init__.py
│ ├── __init__.py~
│ ├── __init__.pyc
│ ├── models
│ │ ├── __init__.py
│ │ ├── __init__.py~
│ │ └── __init__.pyc
│ ├── static
│ │ ├── css
│ │ │ └── style.css
│ │ ├── images
│ │ │ ├── favicon.png
│ │ │ ├── logo.png
│ │ │ ├── text_logo.png
│ │ │ ├── thumb_down_active.png
│ │ │ ├── thumb_down_inactive.png
│ │ │ ├── thumb_up_active.png
│ │ │ └── thumb_up_inactive.png
│ │ ├── js
│ │ │ └── index.js
│ │ └── sitemap.xml
│ ├── templates
│ │ ├── 404.html
│ │ ├── 500.html
│ │ ├── about.html
│ │ ├── base.html
│ │ ├── feedback
│ │ │ └── feedback_form.html
│ │ ├── form.html
│ │ ├── posts
│ │ │ ├── comment.html
│ │ │ ├── post.html
│ │ │ └── posts.html
│ │ ├── spam.html
│ │ ├── terms.html
│ │ └── users
│ │ ├── login_form.html
│ │ └── sign_up_form.html
│ ├── util
│ │ ├── forms.py
│ │ ├── honeypot.py
│ │ ├── __init__.py
│ │ ├── __init__.py~
│ │ ├── json_http.py
│ │ ├── models.py
│ │ └── spam.py
│ └── views
│ ├── feedback.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── post.py
│ ├── post.pyc
│ └── user.py
├── settings.py
├── settings.pyc
└── TiddlyWiki.html
13 directories, 49 files
В чем может быть проблема?
Некоторых играть с pdb_trace() помещенных перед импортом:
(Pdb) import app
(Pdb) app
<module 'app' from '/home/ramin/app/app/__init__.pyc'>
(Pdb) dir(app)
['Flask', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'views']
нет дб в приложении :)
Я уже пробовал отлаживать его с помощью оператора печати, но спасибо за подсказку – TheOne
@ Absolute0: Ну, я не предлагал заявление печати. –
@ Absolute0: Итак, снова: поставьте это заявление pdb и научитесь проходить свою программу. Это поможет. –