No use la .py
extensión en sus importaciones.
¿ from 8puzzle import *
Funciona?
Por lo que vale, from x import *
no es un patrón de Python preferido, ya que sangra el espacio de nombres de ese módulo en su contexto actual.
En general, intente importar cosas que desee específicamente de ese módulo. Se puede importar cualquier global del otro módulo.
por ejemplo, si lo ha hecho 8puzzle.foo
, podría hacer desde 8puzzle
Editar:
Si bien mi .py
mensaje es correcto, no es suficiente.
La __import__('8puzzle')
sugerencia del otro cartel es correcta. Sin embargo, recomiendo encarecidamente evitar este patrón .
Por un lado, está reservado un método Python interno y privado. Básicamente, está rompiendo las suposiciones fundamentales de lo que significa poder importar un módulo. Simplemente cambiar el nombre del archivo por otro, como puzzle8
, solucionará esto.
Esto frustrará muchísimo a los programadores de Python experimentados que esperan saber cuáles son sus importaciones en la parte superior y esperan que el código (intente) ajustarse a PEP8 .