2010-12-20 10 views
6

Se considera mala Python utilizar las importaciones como esto:¿Herramienta para detectar importaciones relativas sin puntos en Python?

import my_module 

Cuando usted está haciendo una importación relativa y esto funcionaría:

from . import my_module 

¿Existe una herramienta que puede detectar estos relativa sin salpicado importa en mi código y avisarme para poder actualizarlos a la sintaxis punteada? My project tiene cientos de módulos de Python y me gustaría hacer esto automáticamente. (Posiblemente tal herramienta anularía __import__ y detectaría las importaciones incorrectas tal como suceden cuando ejecuto el programa.)

¿Alguien conoce esta herramienta?

+0

2to3 se convertirá automáticamente, porque es obligatoria en Python 3 - usted podría ser capaz de reutilizar el código pertinente de que para el análisis estático. –

+3

El código relevante está aquí: http://svn.python.org/view/python/trunk/Lib/lib2to3/fixes/fix_import.py?view=markup Alternativamente, podría ejecutar 2to3 solo con ese fijador: '2to3 -w -f import myproject/' –

+0

@Thomas K: Funcionó, no dude en publicarlo como una respuesta real. –

Respuesta

4

[vuelto a publicar como una respuesta, ya que al parecer hizo el truco]

2to3 se convertirá automáticamente, porque es obligatoria en Python 3.

Aquí está la relevant source code si desea modificarlo para sus propósitos.

Como alternativa, puede simplemente ejecutar 2to3 con sólo eso fijador: 2to3 -w -f import myproject/

0

pylint da advertencias sobre las importaciones relativas, junto con toneladas de otras cosas que se consideran, por una razón u otra, "mal Python".

+0

¿Puede realmente decir la diferencia entre los módulos locales y los módulos 'site-packages'? –

+0

Sí; es consciente de sys.path y debe emitir las advertencias solo para las importaciones relativas reales. – geoffspear

+0

Probado ahora, no mostró advertencias de importación. –

Cuestiones relacionadas