2015-12-10 12 views
6

Con un recente aggiornamento, sto riscontrando un problema serio con SyntaxError: invalid syntax quando si avvia un'istanza python2.7 del notebook con $ ipython2 notebook.Ottenere "SyntaxError: sintassi non valida" con il notebook ipython2

L'errore sembra originare tramite tornado che utilizza ayncio e in quella libreria è presente la sintassi python3.4.

Posso iniziare con $ ipython3 notebook, ma l'applicazione che sto facendo utilizza mayavi che credo sia ancora solo per python2.

Il messaggio di errore è brutto:

$ 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 

Cosa avrebbe aiutato nel mio sitation? Downgrade al tornado? C'è qualcosa di sbagliato nella mia configurazione. Perché è possibile installare asyncio sotto python2.7?

+0

La prego di aprire un bug report sul progetto Tornado? Se questo è un problema abbastanza comune, una patch per Tornado potrebbe supportare sia Python 2.7 che 3.x. –

+0

Tornado supporta sia Python 2.7 che 3.x. AFAIU (vedi la mia risposta sotto). La mia comprensione ora è che si trattava di un problema con requisiti specifici del mio sistema (ad esempio il mio errore) o da qualche altra parte. Leggendo https://github.com/tornadoweb/tornado/blob/master/setup.py Non vedo come sono inclusi asyncio/trollius. Mi chiedo se si tratti di una questione di tornado. –

risposta

7

declassamento tornado funziona:

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

Si noti che questo non risolve il problema sottostante. Meglio sembra scambiare 'asyncio' con' trollius': '$ sudo pip2 uninstall asyncio' seguito da' $ sudo pip2 install trollius'. 'tornado' (4.1 e 4.3) e' notebook' funziona dopo questo. –

Problemi correlati