Python Module with a dash, or hyphen (-) in its name

You can do that using __import__(). For example:

foobar = __import__("foo-bar")

But you really should rename the module instead. That way you can avoid confusion where the filename of the module is different from the identifier used in the program.


I know this question has already been answered to satisfaction of the asker, but here is another answer which I believes has some merit above using __import__().

import importlib
mod = importlib.import_module("path.to.my-module")
# mod.yourmethod()

According to the docs:

"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 + only