2015-12-10 25 views
6

Po niedawnym uaktualnieniu mam teraz poważny problem z SyntaxError: invalid syntax podczas uruchamiania instancji python2.7 notebooka z $ ipython2 notebook.Uzyskiwanie "Składnia błędów: nieprawidłowa składnia" w przypadku notebooka ipython2

Błąd wydaje się pochodzić z tornado, który używa ayncio iw tej bibliotece istnieje składnia python3.4.

Mogę zacząć od $ ipython3 notebook, ale aplikacja, którą robię, używa mayavi, która, jak sądzę, jest wciąż tylko dla python2.

Paskudny komunikat o błędzie:

$ ipython2 notebook 
Traceback (most recent call last): 
    File "/usr/local/bin/ipython2", line 11, in <module> 
    sys.exit(start_ipython()) 
    File "/usr/local/lib/python2.7/dist-packages/IPython/__init__.py", line 118, in start_ipython 
    return launch_new_instance(argv=argv, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 591, in launch_instance 
    app.initialize(argv) 
    File "<string>", line 2, in initialize 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 75, in catch_config_error 
    return method(app, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 305, in initialize 
    super(TerminalIPythonApp, self).initialize(argv) 
    File "<string>", line 2, in initialize 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 75, in catch_config_error 
    return method(app, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/IPython/core/application.py", line 386, in initialize 
    self.parse_command_line(argv) 
    File "/usr/local/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 300, in parse_command_line 
    return super(TerminalIPythonApp, self).parse_command_line(argv) 
    File "<string>", line 2, in parse_command_line 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 75, in catch_config_error 
    return method(app, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 487, in parse_command_line 
    return self.initialize_subcommand(subc, subargv) 
    File "<string>", line 2, in initialize_subcommand 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 75, in catch_config_error 
    return method(app, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 418, in initialize_subcommand 
    subapp = import_item(subapp) 
    File "/usr/local/lib/python2.7/dist-packages/ipython_genutils/importstring.py", line 31, in import_item 
    module = __import__(package, fromlist=[obj]) 
    File "/usr/local/lib/python2.7/dist-packages/notebook/notebookapp.py", line 48, in <module> 
    from tornado import httpserver 
    File "/usr/local/lib/python2.7/dist-packages/tornado/httpserver.py", line 34, in <module> 
    from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters 
    File "/usr/local/lib/python2.7/dist-packages/tornado/http1connection.py", line 28, in <module> 
    from tornado import gen 
    File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 1236, in <module> 
    import tornado.platform.asyncio 
    File "/usr/local/lib/python2.7/dist-packages/tornado/platform/asyncio.py", line 33, in <module> 
    import asyncio 
    File "/usr/local/lib/python2.7/dist-packages/asyncio/__init__.py", line 9, in <module> 
    from . import selectors 
    File "/usr/local/lib/python2.7/dist-packages/asyncio/selectors.py", line 39 
    "{!r}".format(fileobj)) from None 
          ^
SyntaxError: invalid syntax 

co pomogłoby w moim sitation? Obniżanie tornada? Czy jest coś nie tak w mojej konfiguracji. Dlaczego w ogóle jest możliwe zainstalowanie asyncio pod python2.7?

+0

mógłbyś otworzyć raport o błędzie w projekcie Tornado? Jeśli jest to dość powszechny problem, łatka do Tornado może być w stanie obsłużyć zarówno Python 2.7, jak i 3.x. –

+0

Tornado obsługuje zarówno Python 2.7, jak i 3.x. AFAIU (zobacz moją odpowiedź poniżej). Teraz rozumiem, że był to problem z wymaganiami specyficznymi dla mojego systemu (tj. Mojego błędu) lub gdzieś indziej. Czytanie https://github.com/tornadoweb/tornado/blob/master/setup.py Nie widzę, jak dołączono asyncio/trollius. Zastanawiam się, czy to w ogóle problem z tornadem. –

Odpowiedz

7

Obniżanie tornado działa:

$ sudo pip install tornado==4.1 
$ ipython2 notebook 
[I 17:22:31.800 NotebookApp] Serving notebooks from local directory: /home/fnielsen/fnielsen/ipynb 
... 
+3

Należy pamiętać, że nie rozwiązuje to podstawowego problemu. Lepiej jest wymienić 'asyncio' z' trollius': '$ sudo pip2 uninstall asyncio', a następnie' $ sudo pip2 install trollius'. 'tornado' (4.1 i 4.3) i' notebook' działają po tym. –