Python twisted reactor undefined变量

La *_*bla 5 python twisted tcpserver

我正在学习本教程:http: //www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server

但是当我写的时候

reactor.listenTCP(80, factory)
Run Code Online (Sandbox Code Playgroud)

eclipse告诉我它是一个未定义的变量..我安装了扭曲,可以获得导入的自动完成,但这不会工作..谷歌显示更多有这个问题,但我找不到任何解决方案..谢谢!

编辑:完整的代码:

from twisted.internet.protocol import Factory
from twisted.internet import reactor

factory = Factory()
reactor.listenTCP(80, factory)
reactor.run()
Run Code Online (Sandbox Code Playgroud)

gab*_*rtv 15

这是与Eclipse/PyDev执行静态分析的方式相关的已知问题.

如果仔细观察,reactor导入时该对象实际上并不存在于twisted.internet模块中.该模块为空.

当Eclipse/PyDev尝试编译字节码时,静态分析不会reactor在twisted.internet模块中看到对象并将其标记为未定义的变量,即使它实际上存在于运行时(通过一些Twisted魔法注册我无法解释) ).

我使用的解决方法很简单,只需添加#@ UndefinedVariable来抑制错误:

reactor.run() #@UndefinedVariable
Run Code Online (Sandbox Code Playgroud)

瞧.没有IDE错误.

  • 您也可以尝试将'twisted.internet.reactor'添加到强制内置函数中(尚未测试,但它应该可以工作 - 请参阅:http://pydev.org/manual_101_interpreter.html) (5认同)