2009-01-29 94 views
10

我有一個包設置像這樣:的Python:問題與本地模塊陰影的全球模塊

packagename/ 
    __init__.py 
    numbers.py 
    tools.py 
    ...other stuff 

現在裏面tools.py,我試圖導入標準庫模塊fractions。但是,fractions模塊本身導入了numbers模塊,該模塊應該是標準庫中的模塊。

的問題是,它試圖從軟件包,而不是導入numbers模塊(即我numbers.py被遮蔽的STDLIB numbers模塊),然後抱怨的,而不是導入STDLIB模塊一下吧。

我的問題是,是否有解決方法,以便我可以保持我的包的當前結構,或者是唯一的解決方案來重命名我自己的違規模塊(numbers.py)?

+0

對不起,應該已經更加仔細閱讀TFQ。無論如何,我現在試圖重現這個問題,但我不能。發生錯誤時如何執行代碼?我只能在包內運行代碼時才能重現它。 – 2009-01-29 15:32:31

回答

4

我儘量避免陰影標準庫。如何將你的模塊重命名爲「_numbers.py」?

和當然,你還可以這樣做:

import _numbers as numbers