Python错误名称'runfile'未在Spyder中定义

时间:2016-01-18 03:41:13

标签: python-2.7

我收到错误:虽然我已经更改了保存脚本的工作目录,但是Spyder(Python 2.7)中没有定义名称'runfile'。我只是在命令行中运行代码,但我想在Spyder中运行它。我该如何解决?

感谢。

3 个答案:

答案 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管理器中,如下所示

enter image description here

我的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。 这似乎为我清理了一切。