Tengo un módulo de Python existente con un guión en su nombre, foo-bar.py
Cambiar el nombre del módulo es algo que preferiría evitar ya que el módulo se comparte, y tendría que buscar todos los lugares donde se usa para que mi caso especial funcione.
¿Hay alguna forma de cargar un módulo cuyo nombre contenga el '-' normalmente prohibido?
(Entiendo que esta no es una práctica recomendada. Pero para esta situación, preferiría no rediseñar y probar un conjunto de aplicaciones mucho más grande. Además, no creo que mis maestros corporativos aprobarían que me tome el tiempo para implementar tal cambio.)
foo-bar
correos electrónicos confoobar
o lo que sea? ¿Qué tan difícil es eso?Respuestas:
Puedes hacerlo usando
__import__()
. Por ejemplo:Pero realmente debería cambiar el nombre del módulo. De esa manera, puede evitar confusiones cuando el nombre de archivo del módulo es diferente del identificador utilizado en el programa.
fuente
Sé que esta pregunta ya ha sido respondida a satisfacción del autor de la pregunta, pero aquí hay otra respuesta que creo que tiene algún mérito por encima de su uso
__import__()
.Según los documentos:
Python 2.7
+ solofuente
Intente utilizar un guión bajo en lugar de un guión.
importar pymysql_utils
funcionó para mí a pesar de que import pymysql-utils era el nombre del módulo utilizado por pip
fuente