[python] Python 3.1 v Eclipse nefunguje

petrofF petr0ff na seznam.cz
Neděle Srpen 15 22:28:00 CEST 2010


Nepomohla ani aktualizace nejnovější verzi pydev: 1.6.1
[ECLIPSE]
Version: 3.5.2
Build id: M20100211-1343
[OS=WIN XP]
Prostudoval jsem, co se dá a MĚLO BY TO FUNGOVAT
Evidentně je něco v nepořádku

On 13 srp, 15:59, petrofF <petr... na seznam.cz> wrote:
> Doposud jsem používal verzi 2.6, která s PyDev/Eclipse fungovala
> normálně.
> Nyní se učím Trojku, a první spuštění testovacího skriptu (po
> nakonfigurování projektu) v ladícím módu skončilo chybou:
>
> pydev debugger: warning: psyco not available for speedups (the
> debugger will still work correctly, but a bit slower)
> pydev debugger: starting
> Traceback (most recent call last):
>   File "C:\Eclipse\eclipse\plugins
> \org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd_comm.py", line
> 235, in OnRun
>     r = r.decode('utf-8')
> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 38-40:
> invalid data
>
> Konkrétně jde o výjimku ve vláknu pro RemoteDebugging:
>
>  [ FILE: pydevd_comm.py ]
>  ....
> class PyDBDaemonThread(threading.Thread):
>  ....
> class ReaderThread(PyDBDaemonThread):
>     """ reader thread reads and dispatches commands in an infinite
> loop """
>  .....
>     def OnRun(self):
>         pydevd_tracing.SetTrace(None) # no debugging on this thread
>         buffer = ""
>         try:
>             while not self.killReceived:
>                 try:
>                     r = self.sock.recv(1024)
>                 except:
>
> GlobalDebuggerHolder.globalDbg.finishDebuggingSession = True
>                     break #Finished communication.
>                 if IS_PY3K:
>                     r = r.decode('utf-8')
>                 buffer += r
>                  ....atd.
> PS.
> Navíc v testovaném zdrojáku mi IDE označilo definice:
> def radius
> jako Error => Duplicitní výskyt
> (přitom ve skutečnosti jde o atributy vlastnosti, a syntaxe to tak
> vyžaduje)
>
> [ FILE: Testovací ]
>   @property
>     def radius(self):
>         """Poloměr kruhu
>         ...atd
>         """
>         return self.__radius
>
>     @radius.setter
>     def radius(self, radius):
>         assert radius > 0, "poloměř musí být nenulový a nezáporný"
>         self.__radius = radius



Další informace o konferenci Python