【发布时间】:2018-07-18 00:06:06
【问题描述】:
我收到错误:名称“runfile”未在 Spyder (Python 2.7) 中定义,尽管我更改了保存脚本的工作目录。我只是在命令行中运行代码,但我想在 Spyder 中运行它。我该如何解决?
谢谢。
【问题讨论】:
标签: python-2.7
我收到错误:名称“runfile”未在 Spyder (Python 2.7) 中定义,尽管我更改了保存脚本的工作目录。我只是在命令行中运行代码,但我想在 Spyder 中运行它。我该如何解决?
谢谢。
【问题讨论】:
标签: python-2.7
可能有多种原因可能导致这种情况。我遇到了这个问题,导致我的问题是 sitecustomize 的问题。搜索解决方案后(我在此处搜索的详细信息:Spyder 'runfile' is not defined),我基本上需要转到命令提示符(Windows 中的 cmd)并输入:
spyder --reset
spyder --default
【讨论】:
造成问题的原因是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' is not defined"
我的解决方法是将该路径添加到 PYTHONPATH 管理器中,如下所示
我的 spyder 安装是独立的,而不是 Anaconda 包的一部分,因为我不想在 2.x 和 3.x python 安装之上再安装一个 python。也许,这就是为什么 spyder --reset 和 spyder --default 将它们设置回默认值对我不起作用。
【讨论】:
在 Anaconda 环境中的 Windows 机器上,我必须运行
conda update setuptools
从命令行,根据https://github.com/spyder-ide/spyder/issues/2812。 这似乎为我清理了一切。
【讨论】: