我有一个较旧的django项目(在1.3很热的时候创建),试图将其转换为最新的Django 1.6。
新的目录结构已转换为新的方式,并且项目名称已从所有导入中删除(from myproject.api import x
成为from api import x
)
myproject/
myproject/
__init__.py
settings.py
urls.py
api/
__init__.py
resthandler.py
platforms/
__init__.py
plat1/
__init__.py
handlers.py
api/
__init__.py
问题是platform / plat1 / handlers尝试从/api/resthandler.py导入
从api.resthandler导入RestHandler
但是由于已经存在一个较低级别的api,它会因Importhandler不存在而失败,并出现ImportError,它的2个级别在/ api中向上和向下。我试图将项目级别恢复为导入,尝试了相对导入,但没有任何帮助。我似乎无法从platform / plat1 /内导入/ api。我会去改变整个结构,但是我想在走那条路线之前先看看是否缺少什么东西。
为了将来参考,解决方案是从future导入absolute_imports 。
from __future__ import absolute_imports
这样,所有导入都是从根开始绝对的,除非使用点符号明确指定了相对导入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句