python - httperror - ¿Cómo importar el módulo cuando el nombre del módulo tiene un guión ''-'' o un guión?
urllib2 in python (3)
Si no puede cambiar el nombre del archivo original, también puede usar un enlace simbólico:
ln -s foo-bar.py foo_bar.py
Entonces puedes simplemente:
from foo_bar import *
Quiero importar foo-bar.py Esto funciona:
foobar = __import__("foo-bar")
Esto no lo hace:
from "foo-bar" import *
Mi pregunta: ¿hay alguna forma de que pueda usar el formato anterior, es decir, from "foo-bar" import *
para importar un módulo que tenga un -
en él?
Si no puede cambiar el nombre del módulo para que coincida con las convenciones de nomenclatura de Python, cree un nuevo módulo para actuar como intermediario:
---- foo_proxy.py ----
tmp = __import__(''foo-bar'')
globals().update(vars(tmp))
---- main.py ----
from foo_proxy import *
no puedes foo-bar
no es un identificador. cambie el nombre del archivo a foo_bar.py
Editar: si import
no es su objetivo (como en: no le importa lo que sucede con sys.modules
, no lo necesita para importarlo), simplemente colocando todos los archivos globales en su propio alcance, puede usar execfile
# contents of foo-bar.py
baz = ''quux''
>>> execfile(''foo-bar.py'')
>>> baz
''quux''
>>>