que - guion bajo en python
Módulo de Python con un guión, o guión(-) en su nombre (2)
Puedes hacerlo usando __import__()
. Por ejemplo:
foobar = __import__("foo-bar")
Pero en realidad debería cambiar el nombre del módulo. De esta forma, puede evitar confusiones cuando el nombre del archivo del módulo es diferente del identificador utilizado en el programa.
Tengo un módulo de python existente con un guion en su nombre, foo-bar.py
Cambiar el nombre del módulo es algo que preferiría evitar a medida que se comparte el módulo, y tendría que buscar todos los lugares en los que se usa para que mi caso especial funcione.
¿Hay alguna manera de cargar un módulo cuyo nombre contenga el ''-'' prohibido?
(Entiendo que esta no es una mejor práctica. Pero para esta situación, preferiría no rediseñar y probar un conjunto de aplicaciones mucho más grande. Tampoco creo que mis maestros corporativos aprobarían que me tomara el tiempo para implementar tal cambio)
Sé que esta pregunta ya ha sido respondida a satisfacción del solicitante, pero aquí hay otra respuesta que creo que tiene algún mérito anterior usando __import__()
.
import importlib
mod = importlib.import_module("path.to.my-module")
# mod.yourmethod()
De acuerdo con los documentos:
"This provides an implementation of import which is portable to any
Python interpreter. This also provides an implementation which is
easier to comprehend than one implemented in a programming language
other than Python."
Python 2.7
+ solamente