[Tutor] Import module function using variable

Slater, Joseph C. joseph.slater at wright.edu
Tue Jun 12 21:52:49 EDT 2018


Dear friends,

I am trying to import a function in a module by variable name. The specific example is that my function allows the user to select which function my code will use (in this case, which optimizer in scipy). There is a default for a named variable. I have thing working in a quite unclean way- I import them all and then look them up in globals. I'm not trying to clean it up. 

Essentially I'd like to

method = 'newton_krylov'

chosen_optimize_func = (from scipy.optimize import method)

Of course, even I know this shouldn't work. What I tried is

solver_method = __import__('scipy.optimize.' + method, fromlist=[''])

which yields:
---------------------------------------------------------------------------
ModuleNotFoundError
                       Traceback (most recent call last)

<ipython-input-28-f58650552981> in <module>()
----> 1 solver_method = __import__('scipy.optimize.' + method, fromlist=[''])



ModuleNotFoundError
: No module named 'scipy.optimize.newton_krylov'


Well, no, it's not a module but a function. 


Any thoughts on how to do this?

Thank You- Joe




More information about the Tutor mailing list