让我解释的问题 - 我们有这样的项目:如何在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