簡體   English   中英

Import語句無法在Python 3.3中正常工作

[英]Import statement doesn't work as expected with Python 3.3

我最近使用Django1.6b1將Django應用程序從Python 2.7移植到了Python 3.3。

對於自定義模塊導入(用戶,視圖...),我的導入語句不再起作用,並且在這些導入之前必須添加一個點。 為什么呢

范例:

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

不是錯誤; Python 3強制顯式相對導入。

文檔

相對導入的唯一可接受語法是from .[module] import name 所有導入表單均不以開頭. 被解釋為絕對進口。 PEP 0328

同樣, import .EmailUser在任何Python版本中都是無效的語法。 它必須from . import EmailUser from . import EmailUser

這是因為“絕對進口”,即不是以開頭的進口。 是絕對的,必須在模塊路徑中找到。 在Python 2.6、2.7中,您可以通過執行以下操作逐個文件地打開它

from __future__ import absolute_import

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM