讓我解釋的問題 - 我們有這樣的項目:如何在Python中加載與其他模塊名稱相同的模塊?
model/__init__.py
model/abstract.py
task/__init__.py
task/model.py
如何裝入task/model.py
model.abstract
什麼是它的語法?
# task/model.py
import model # it loads task/model.py not model
from model.abstract import test # there is no test exception
# model/abstract.py
test = 1
如何做這樣的進口?
請求更多詳細信息。
谷歌App Engine應用程序: - 主要是main.py
目錄結構:
└───src
│ app.yaml
│ index.yaml
│ main.html
│ main.py
│ task_master_api.py
│
├───circle
│ model.py
│ __init__.py
│
├───model
│ abstract.py
│ xxx.py
│ __init__.py
│
├───task
│ model.py
│ __init__.py
│
├───user
│ model.py
│ __init__.py
異常(見task.model根不模型):
from .. import model
logging.critical((type(model), model.__name__))
from model.abstract import AbstractNamed, AbstractForgetable
-
CRITICAL 2014-02-17 21:23:36,828 model.py:8] (<type 'module'>, 'task.model')
from model.abstract import AbstractNamed, AbstractForgetable
ImportError: No module named abstract
更多相關答案。
from .. import model
給出例外。
ValueError: Attempted relative import beyond toplevel package
您是否將'model.py'作爲腳本運行? – BrenBarn
不是 - 'model.py'被導入另一個帶有'main'的模塊。 – Chameleon