I want to import some package depending on which value the user chooses.
The default is file1.py:
As Fredrik Lundh states:
Anyway, here’s how these statements and functions work:
import Ximports the module X, and creates a reference to that module in the current namespace. Or in other words, after you’ve run this statement, you can useX.nameto refer to things defined in module X.
from X import *imports the module X, and creates references in the current namespace to all public objects defined by that module (that is, everything that doesn’t have a name starting with “_”). Or in other words, after you’ve run this statement, you can simply use a plain name to refer to things defined in module X. But X itself is not defined, soX.namedoesn’t work. And if name was already defined, it is replaced by the new version. And if name in X is changed to point to some other object, your module won’t notice.
from X import a, b, cimports the module X, and creates references in the current namespace to the given objects. Or in other words, you can now useaandbandcin your program.Finally,
X = __import__(‘X’)works likeimport X, with the difference that you 1) pass the module name as a string, and 2) explicitly assign it to a variable in your current namespace.
And by the way that's the last one method that you're intrested in.
Simply write (for example):
var = "datetime"
module = __import__(var)