The reason for the cause of the issue is that spyder (3.0.0b7 in my case) fails to load the following file (the path is OSX path)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/spyder/widgets/externalshell/sitecustomize.py
So when the above file is failed to load, the following function "runfile" from sitecustomize.py got failed to load as well.
def runfile(filename, args=None, wdir=None, namespace=None, post_mortem=False):
"""
Run filename
args: command line arguments (string)
wdir: working directory
post_mortem: boolean, whether to enter post-mortem mode on error
"""
try:
filename = filename.decode('utf-8')
except (UnicodeError, TypeError, AttributeError):
# UnicodeError, TypeError --> eventually raised in Python 2
# AttributeError --> systematically raised in Python 3
.
.
.
Thus, python not finding the function runfile which is needed to run the .py file inside the spyder IDE and spew out "NameError: name 'runfile' is not defined"
The fix for me is to add that path into the PYTHONPATH manager as follow
My spyder installation is a standalone and not part of the Anaconda package since I don't want to have another python installation on top of 2.x and 3.x python installation. Maybe, that's why spyder --reset and spyder --default to set them back to default does not work for me.