What are the different possible values for __name__ in a Python script, and what do they mean?
__name__ is usually the module name, but it's changed to '__main__' when the module in question is executed directly instead of being imported by another one.
I understand that other values can only be set directly by the code you're running.
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.