2012-04-24 11 views
5

Obserwuję ten tutorial: http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-serverPython twisted reaktor niezdefiniowana zmienna

ale kiedy napisać

reactor.listenTCP(80, factory) 

zaćmienie mówi mi, że jest to zmienna zdefiniowana .. zainstalowałem skręcona i można dostać autouzupełnianie dla importu, ale to nie zadziała. Google pokazał kilka innych problemów z tym problemem, ale nie mogłem znaleźć żadnego rozwiązania. Dzięki!

EDIT: Kompletny kod:

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

factory = Factory() 
reactor.listenTCP(80, factory) 
reactor.run() 
+0

To nie jest kompletny program; dołącz cały plik lub nie możemy powiedzieć Ci, czego brakuje. – Glyph

+0

Dokładnie to samo mówi samouczek. ale będę edytować i dołączyć cały kod –

Odpowiedz

15

Jest to znany problem związany ze sposobem przeprowadzania analizy statycznej przez Eclipse/PyDev.

Jeśli przyjrzysz się uważnie, obiekt reactor faktycznie nie istnieje w skręconym module internetowym w czasie importu. Moduł jest pusty.

Gdy Eclipse/PyDev próbuje skompilować kod bajtowy, statyczna analiza nie widzi obiektu reactor w module twisted.internet i oznacza go jako niezdefiniowaną zmienną, mimo że jest obecna w środowisku uruchomieniowym (zarejestrowana przez jakąś zakręconą magię Nie potrafię wyjaśnić).

Obejście używam jest proste, wystarczy dodać # @ UndefinedVariable tłumić błąd:

reactor.run() #@UndefinedVariable 

Voila. Koniec z błędami IDE.

+5

Możesz także spróbować dodać "twisted.internet.reactor" do wymuszonych wbudowanych (nie testowałem, ale powinno działać - patrz: http://pydev.org/manual_101_interpreter.html) –

-1

spróbuj uruchomić go poza Eclipse. Jeśli to działa, jest to problem z zaćmieniem.

+0

jak mogę skompilować go poza zaćmieniem? Jestem w systemie Windows. –

+0

To jest python, nie kompilujesz go. –

Powiązane problemy