我收到错误:虽然我已经更改了保存脚本的工作目录,但是Spyder(Python 2.7)中没有定义名称'runfile'。我只是在命令行中运行代码,但我想在Spyder中运行它。我该如何解决?
感谢。
答案 0 :(得分:4)
可能有多种因素导致这种情况发生。我遇到了这个问题,导致它的原因是sitecustomize的一个问题。在搜索解决方案后(我在此搜索的详细信息:Spyder 'runfile' is not defined),我基本上需要转到命令提示符(Windows中的cmd)并输入:
spyder --reset
spyder --default
答案 1 :(得分:0)
导致问题的原因是spyder(在我的情况下是3.0.0b7)无法加载以下文件(路径是OSX路径)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/spyder/widgets/externalshell/sitecustomize.py
因此,当上述文件加载失败时, sitecustomize.py 的以下函数“runfile”也无法加载。
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
.
.
.
因此,python没有找到在spyder IDE中运行.py文件所需的函数runfile,并且没有定义“NameError:name'runfile'
对我来说,修复是将该路径添加到PYTHONPATH管理器中,如下所示
我的spyder安装是独立的,而不是Anaconda软件包的一部分,因为我不希望在2.x和3.x python安装之上安装另一个python。也许,这就是 spyder --reset 和 spyder --default 将它们设置回默认值的原因对我不起作用。
答案 2 :(得分:0)
在Anaconda环境中的Windows机器上,我必须运行
conda update setuptools
从命令行开始,按照https://github.com/spyder-ide/spyder/issues/2812。 这似乎为我清理了一切。