2013-08-07 29 views
0

我最近使用Django1.6b1将Python 2.7中的django应用程序移植到Python 3.3。Python导入语句无法按预期工作3.3

我的导入语句不再适用于自定义模块导入(User,views ...),我必须在这些导入之前添加一个点。为什么?

实施例:

import EmailUser #worked with python 2.7 but doesn't work with 3.3  
import .EmailUser #works  

回答

3

不是错误; Python 3强制显式相对导入。

docs

唯一可接受的语法相对导入是from .[module] import name。所有不以.开头的进口表格都被解释为 绝对进口。 (PEP 0328

+0

感谢您的解释。帮了我很多。 – Depado

3

这是因为“绝对进口”,也就是不是从一开始的进口。是绝对的,必须在模块路径中找到。在Python 2.6中,您可以通过执行文件逐个打开此文件

from __future__ import absolute_import 
+0

谢谢:D我不知道。 – Depado