libreria httperror español build_opener python import module hyphen

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'' >>>