I need to have an import in __init__() method (because i need to run that import only when i instance the class).
But i cannot see that import outside __init__(), is the scope limited to__init__? how to do?
You can just import it again other places that you need it -- it will be cached after the first time so this is relatively inexpensive.
Alternatively you could modify the current global namespaces with something like globals()['name'] = local_imported_module_name.
EDIT: For the record, although using the globals() function will certainly work, I think a "cleaner" solution would be to declare the module's name global and then import it, as several other answers have mentioned.
Python import in __init__()