2013-08-07 27 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