我运行python脚本两次时文件名中的语法错误?

时间:2016-08-10 16:33:54

标签: python windows python-2.7 ipython

当我尝试在IPython中使用run命令两次时,第二次出现语法错误:

In [2]: run control.py

In [3]: run control.py
  File "<ipython-input-3-3e54b0f85f39>", line 1
    run control.py
              ^
SyntaxError: invalid syntax

在我的脚本中,我实现了一个类并从该类中创建了一个对象。

我尝试制作一个没有任何类和对象的新python脚本,并且当我多次运行它时它工作正常,为什么类和对象会产生问题?

我在Windows上使用ipython(不是笔记本)。

1 个答案:

答案 0 :(得分:4)

正确的ipython命令为%run,前缀为%。没有前缀可以工作,但如果您还没有Python全局名称run屏蔽该命令。

因为%run script.py在IPython解释器中运行脚本,所以在脚本完成后,脚本集中的任何全局变量都可以在解释器中使用。您的console.py脚本设置全局名称run,该名称现在屏蔽 %run命令。

换句话说,这与类或实例无关。使用%run运行脚本,或者不要在脚本本身的任何位置使用名称run

使用小脚本设置run进行演示;请注意%run如何继续有效,删除名称run如何使run demo.py再次发挥作用:

In [1]: %cat demo.py
print('Setting the name "run" to "foo"')
run = 'foo'

In [2]: run demo.py
Setting the name "run" to "foo"

In [3]: run  # the global name is set
Out[3]: 'foo'

In [4]: run demo.py
  File "<ipython-input-4-3c6930c3028c>", line 1
    run demo.py
           ^
SyntaxError: invalid syntax


In [5]: %run demo.py
Setting the name "run" to "foo"

In [6]: del run  # deleting the global name makes 'run script' work again

In [7]: run demo.py
Setting the name "run" to "foo"