2016-03-01 43 views
2
Project 
    __init__.py 
    main.py 
    parser.py 

從main內部,如何導入我的解析器模塊,因爲解析器已經是內置的,在?如何導入和/或引用與內置Python名稱相同名稱的用戶定義模塊

當前,重命名用戶定義的模塊是最糟糕的情況解決方案。

我已經試過:

import parser 
from parser import TextFileParser 

from parser import TextFileParser 

from . import parser 

from .parser import TextFileParser 

from __future__ import absolute_import 
from . import parser as myParser 

以及其他一些組合。

我已閱讀回答to this相關問題,但我的理解是,3.5默認使用絕對導入。我也讀過這article,但它似乎並不適用。

我也很高興別名我需要的類,如果這是可能的。即

TextParseClass = from parser import TextParser

+0

有是取決於這個是名稱的一些自動化代碼。另外,我認爲這個問題會再次出現,比如Python標準庫擴展爲包含一個新的內置模塊,以覆蓋我已經制作的模塊 – BrianHVB

+0

@Jordy Cuan Petrucci Ugh,我感到尷尬。所以很簡單,不知道我是如何忽略它的。謝謝。如果你想 – BrianHVB

+0

'__import __(「Project.parser」)''也會返回你的模塊。所以'foo = __import __(「Project.parser」)應該可以工作,儘管它可能不是處理它的最好方法。 – IanAuld

回答

2

使用此:from Project import parser

相關問題