Checking to see if __name__ == '__main__'
is a common idiom to run some code when the file is being called directly, rather than through a module.
In the process of writing a custom command for Django's manage.py, I found myself needing to use code.InteractiveConsole
, which gives the effect to the user of a standard python shell. In some test code I was doing, I found that in the script I'm trying to execute, I get that __name__
is __console__
, which caused my code (dependent on __main__
) to not run.
I'm fairly certain that I have some things in my original implementation to change, but it got me wondering as to what different things __name__
could be. I couldn't find any documentation on the possible values, nor what they mean, so that's how I ended up here.