在一個網站我與Flask我有結構建築是這樣的:爲什麼我不能從一個python文件導入一個來自現有軟件包的文件?
├── app
│ ├── __init__.py
│ ├── models.py
│ ├── ticket_scanner
│ │ ├── __init__.py
│ │ └── filehelper.py
│ ├── templates
│ │ └── all the templates are here..
│ └── views.py
└── run.py
我現在想導入到models
ticket_scanner/__init__.py
。我試圖做到這一點使用以下import語句(在他們身後的錯誤):
from .. import models # ImportError: cannot import name models
from . import models # ImportError: cannot import name models
import models # ImportError: No module named models
from ..models import ImageHash # ImportError: cannot import name ImageHash
正如你可以看到它拒絕從models.py
文件導入。我在這些文件中有循環導入,但我不知道它出錯的地方。在此消息下面,我粘貼了第一次嘗試的完整堆棧跟蹤(from .. import models
)。
有沒有人知道我在這裏錯了什麼?歡迎所有提示!
Traceback (most recent call last):
File "./run.py", line 4, in <module>
from app import app
File "/Users/kramer65/repos/fts/app/__init__.py", line 16, in <module>
import views, models
File "/Users/kramer65/repos/fts/app/views.py", line 5, in <module>
from models import Ticket
File "/Users/kramer65/repos/fts/app/models.py", line 8, in <module>
from ticket_scanner import filehelper, pdf as pdf_helper, util
File "/Users/kramer65/repos/fts/app/ticket_scanner/__init__.py", line 8, in <module>
from .. import models
ImportError: cannot import name models
雖然重複建議的措辭不同,根本原因可能是一樣的:你試圖通過導入東西它取決於被定義的東西之前創建一個圓形進口。 – davidism