On attempting to launch Jupyter on Python 3.7, I observe the following:
$ jupyter notebook
Traceback (most recent call last):
File "/usr/local/bin/jupyter-notebook", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/dist-packages/jupyter_core/application.py", line 266, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py", line 657, in launch_instance
app.initialize(argv)
File "<decorator-gen-7>", line 2, in initialize
File "/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/notebook/notebookapp.py", line 1629, in initialize
self.init_webapp()
File "/usr/local/lib/python3.7/dist-packages/notebook/notebookapp.py", line 1379, in init_webapp
self.jinja_environment_options,
File "/usr/local/lib/python3.7/dist-packages/notebook/notebookapp.py", line 158, in __init__
default_url, settings_overrides, jinja_env_options)
File "/usr/local/lib/python3.7/dist-packages/notebook/notebookapp.py", line 270, in init_settings
nbextensions_path=jupyter_app.nbextensions_path,
File "/usr/local/lib/python3.7/dist-packages/notebook/notebookapp.py", line 1066, in nbextensions_path
from IPython.paths import get_ipython_dir
File "/usr/local/lib/python3.7/dist-packages/IPython/__init__.py", line 54, in <module>
from .core.application import Application
File "/usr/local/lib/python3.7/dist-packages/IPython/core/application.py", line 25, in <module>
from IPython.core import release, crashhandler
File "/usr/local/lib/python3.7/dist-packages/IPython/core/crashhandler.py", line 27, in <module>
from IPython.core import ultratb
File "/usr/local/lib/python3.7/dist-packages/IPython/core/ultratb.py", line 119, in <module>
from IPython.utils import path as util_path
File "/usr/local/lib/python3.7/dist-packages/IPython/utils/path.py", line 17, in <module>
from IPython.utils.process import system
File "/usr/local/lib/python3.7/dist-packages/IPython/utils/process.py", line 19, in <module>
from ._process_posix import system, getoutput, arg_split, check_pid
File "/usr/local/lib/python3.7/dist-packages/IPython/utils/_process_posix.py", line 23, in <module>
import pexpect
File "/usr/lib/python3/dist-packages/pexpect/__init__.py", line 75, in <module>
from .pty_spawn import spawn, spawnu
File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 15, in <module>
from .spawnbase import SpawnBase
File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 218
def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
^
SyntaxError: invalid syntax
I've installed python3.7-distutils (which appears to feature pexpect) and I've reinstalled Jupyter using pip3, yet I still see this error. I've also uninstalled and reinstalled the following packages:
python3.7 python3.7-dev python3.7-distutils python3.7-tk
What should be done?
I see reference to this fix but, assuming it is a fix, don't know how to get it up and running on this 16.04 LTS install.
EDIT: On importing pexpect in Python 3.7, I get the same sort of thing:
>>> import pexpect
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/pexpect/__init__.py", line 75, in <module>
from .pty_spawn import spawn, spawnu
File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 15, in <module>
from .spawnbase import SpawnBase
File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 218
def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
^
SyntaxError: invalid syntax
python3.7 -c 'import pexpect'succeed? – wjandrea Jan 04 '19 at 15:25pexpectin Python 3.7 I do get the same sort of error, and I've added the terminal output to the question. As I've linked in the question, it looks like something has been done to attempt to address this bug, which may arise because of changes in Python 3.7. Do you know how the current version ofpexpect, or more generallydistutils, can be installed in Ubuntu 16.04 LTS safely? – BlandCorporation Jan 04 '19 at 17:00asyncwas added as a reserved keyword in Python 3.7. When youimport pexpect, it's importing the module written for Python 3.5 (which is the system version -/usr/lib/python3is the system Python 3 library). – wjandrea Jan 04 '19 at 17:14distutilsfor Python 3.7 in the following way:sudo apt install python3.7 python3.7-dev python3.7-distutils python3.7-tk(I've tried removing these packages and reinstalling them a few times now also). – BlandCorporation Jan 04 '19 at 20:59pexpectmodule should be at/usr/local/lib/python3.7/dist-packages/pexpect. Is it? Also what is the output ofpython3.7 -c 'import sys; print(sys.path)? – wjandrea Jan 05 '19 at 18:30