6

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

但是当我写

reactor.listenTCP(80, factory)

eclipse 告诉我这是一个未定义的变量.. 我安装了 twisted 并且可以为导入自动完成,但这不起作用.. 谷歌显示了更多有这个问题但我找不到任何解决方案.. 谢谢!

编辑:完整代码:

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

factory = Factory()
reactor.listenTCP(80, factory)
reactor.run()
4

2 回答 2

17

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

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

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

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

reactor.run() #@UndefinedVariable

瞧。没有更多的 IDE 错误。

于 2012-04-25T00:19:57.880 回答
-1

尝试在 Eclipse 之外运行它。如果它有效,这是一个日食问题。

于 2012-04-24T22:34:12.237 回答