我有一個目錄設置如下:Python的導入模塊沒有發現錯誤
/directory
/directory/__init__.py
/directory/setup.py
/directory/app/db.py
/directory/app/__init__.py
的/directory/__init__.py
文件包含行「導入應用程序」,然後在/directory/app/__init__.py
由於行「進口DB」當我嘗試失敗運行setup.py文件。但是,如果我將錯誤行更改爲「從應用程序導入數據庫」,那麼它工作正常。爲什麼是這樣?我猜它與我從父目錄運行它有關。有什麼辦法可以做到這一點?或者,即使從應用程序文件夾中調用了所有導入,也要將它們更改爲「從應用程序導入x」?
感謝您的任何澄清。
編輯:這裏的錯誤:
Traceback (most recent call last):
File "setup.py", line 2, in <module>
import app
File "/directory/app/__init__.py", line 1, in <module>
import db
ImportError: No module named 'db'
EDIT2:這裏是/directory/app/__init__.py
文件(/directory/__init__.py
爲空)
import db
from flask import Flask, render_template
DEBUG = True
app = Flask(__name__)
app.config.from_object(__name__)
@app.route("/")
def hello():
return render_template()
def run(host, port):
db.init_db()
app.run(host=host, port=port)
最後編輯: 我已經改寫我的問題here,並給予正確的回答。我不確定python3的變化是否相關。謝謝!
如果您發佈錯誤和堆棧跟蹤 –
我無法重現這個問題這將有助於:https://gist.github.com/sharth/145bc486f10343a1869c –
你可以分享你'__init __ py'。文件和至少前兩行'setup.py'? –