I am learning Python, and as always, I'm being ambitious with my starter projects. I am working on a plugin system for a community site toolkit for App Engine. My plugin superclass has a method called install_path
. I would like to obtain the __path__
for the __module__
for self
(which in this case will be the subclass). Problem is, __module__
returns a str
rather than the module instance itself. eval()
is unreliable and undesirable, so I need a good way of getting my hands on the actual module instance that doesn't involve eval
ling the str
I get back from __module__
.
The sys.modules
dict contains all imported modules, so you can use:
mod = sys.modules[__module__]
How about Importing modules
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.
You could pass the module name (instead of 'X') and get the module instance back. Python will ensure that you don't import the same module twice, so you should get back the instance that you imported earlier.
Alternatively, you can use the module's global __file__
variable if all you want is the module's path.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With