当我尝试在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(不是笔记本)。
答案 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"