J'ai récemment mis à niveau Python3.6 vers Python3.7. Depuis que j'ai mis à niveau, quand je tape ipython3
dans le terminal, j'obtiens une erreur:
~$ ipython3
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3/dist-packages/IPython/__init__.py", line 48, in <module>
from .core.application import Application
File "/usr/lib/python3/dist-packages/IPython/core/application.py", line 25, in <module>
from IPython.core import release, crashhandler
File "/usr/lib/python3/dist-packages/IPython/core/crashhandler.py", line 28, in <module>
from IPython.core import ultratb
File "/usr/lib/python3/dist-packages/IPython/core/ultratb.py", line 124, in <module>
from IPython.utils import path as util_path
File "/usr/lib/python3/dist-packages/IPython/utils/path.py", line 18, in <module>
from IPython.utils.process import system
File "/usr/lib/python3/dist-packages/IPython/utils/process.py", line 19, in <module>
from ._process_posix import system, getoutput, arg_split, check_pid
File "/usr/lib/python3/dist-packages/IPython/utils/_process_posix.py", line 24, 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 14, in <module>
from .spawnbase import SpawnBase
File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 224
def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
^
SyntaxError: invalid syntax
De plus, j'ai remarqué que mon cahier jupyter ne semble plus fonctionner avec le noyau python3 maintenant (j'obtiens l'erreur morte du noyau).
Remarques:
async
est un mot réservé dans Python 3.7
Vous pouvez modifier les packages vous-même si vous vous sentez à l'aise de le faire. Voici une commande Shell qui fait exactement cela:
sed "s/async/_async/g" "/usr/lib/python3/dist-packages/pexpect/spawnbase.py" > tmp.txt && cat tmp.txt > "/usr/lib/python3/dist-packages/pexpect/spawnbase.py" && rm tmp.txt
Sinon, vous voudrez peut-être utiliser Python 3.6 en attendant une mise à jour.
Comme d'autres l'ont noté, avoir la version actuelle du package pexpect
devrait résoudre ce problème. Dans mon cas, le python3-pexpect
le package que j'avais installé via apt était bloqué sur une ancienne version et je devais d'abord le supprimer. L'installation du package pexpect
actuel via pip3 a résolu le problème.