2010-12-20 74 views
6

它認爲是不好的Python中使用進口這樣的:在Python中檢測非點相對導入的工具?

import my_module 

當你在做一個相對進口,這將工作:

from . import my_module 

是否有一個工具,可以檢測這些非點綴相對在我的代碼中導入並警告我,以便我可以將它們更新爲虛線語法? My project有數百個Python模塊,我想自動執行此操作。 (可能這樣的工具將覆蓋__import__,並檢測不良進口,因爲它們在我運行該程序時發生。)

有沒有人知道這樣的工具?

+0

2to3的會自動將它們,因爲它是在Python 3強制 - 你也許可以從該重新利用的相關代碼靜態分析。 – 2010-12-20 14:46:25

+3

相關的代碼在這裏:http://svn.python.org/view/python/trunk/Lib/lib2to3/fixes/fix_import.py?view=markup或者,你可以只運行2to3只有修復:'2to3 -w -f import myproject /' – 2010-12-20 14:54:46

+0

@Thomas K:它的工作,隨意將其作爲實際答案發布。 – 2010-12-20 16:52:53

回答

4

[轉貼作爲一個答案,因爲它顯然是沒有的伎倆]

2to3的會自動將其轉換,因爲它在Python 3強制性

這裏的relevant source code如果你想修改你的目的。

或者,你可以只用只有定影液運行2to3的:2to3 -w -f import myproject/

0

pylint由於某種原因給出了有關相對進口的警告,以及其他被認爲是「不良Python」的其他東西。

+0

它實際上能夠區分本地模塊和'site-packages'模塊嗎? – 2010-12-20 14:58:07

+0

是的;它知道sys.path,並且應該僅針對實際的相對導入發出警告。 – geoffspear 2010-12-20 15:01:34

+0

現在試過了,它沒有顯示導入警告。 – 2010-12-20 16:51:45