Python 3.6.8 - Jedi - ImportError: cannot import name 'traverse_parents'
Python 3.6.8 - Jedi - ImportError: cannot import name 'traverse_parents'
When 运行ning import jedi
in python 3.6.8 我得到以下导入错误(完整回溯见 post 末尾):
...
from jedi.common import traverse_parents
ImportError: cannot import name 'traverse_parents'
我检查了 ~/.local/lib/python3.6/site-packages/jedi/common.py
:有一个函数叫做 traverse_parents
好吧所以肯定有一些巫术在起作用。这不是我第一次 运行 遇到那些“未定义的名称”问题之一,但我 运行 对此一无所知。
已经尝试过:
- 正在卸载、重新安装、升级 pip3 的“jedi”包
- 其他几个名称中带有“绝地武士”的软件包的爵士乐几乎相同
- 正在将 pip3 升级到 20.2.1 并重做相同的重新安装例程
- 为 python2 安装 jedi 因为为什么不呢(嘿,它在 python2 中工作正常但谁在乎)
- 还尝试从 apt-get 安装 python-jedi(后来我删除了它)
- 古代巴比伦恶魔的咒语(无济于事,他们星期天不工作)
关于如何修复它的模糊线索:
- 从 github 获取最新版本的绝地武士并以某种方式安装它而不会造成混乱(机会多)
- 卸载 jedi 并从 Neovim 中重新安装它(嘿,这可能会实现前一点)
我在网上搜索了这个问题的答案,但一无所获。有没有人经历过类似的事情并设法解决了?
欢迎提出任何建议。
完整回溯:
Error detected while processing function provider#python3#Call:
line 18:
Error invoking 'python_execute' on channel 5 (python3-script-host):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/vee/.local/lib/python3.6/site-packages/jedi/__init__.py", line 32, in <module>
from jedi.api import Script, Interpreter, set_debug_funcion, \
File "/home/vee/.local/lib/python3.6/site-packages/jedi/api/__init__.py", line 24, in <module>
from jedi.api import classes
File "/home/vee/.local/lib/python3.6/site-packages/jedi/api/classes.py", line 26, in <module>
from jedi.inference import imports
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/__init__.py", line 70, in <module>
from jedi.inference import imports
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/imports.py", line 24, in <module>
from jedi.inference import sys_path
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/sys_path.py", line 8, in <module>
from jedi.common import traverse_parents
ImportError: cannot import name 'traverse_parents'
已修复:
我用这个命令通过 pip 重新安装了最新版本的 jedi :
pip3 install -e git://github.com/davidhalter/jedi.git#egg=jedi
现在,命令 import jedi
不会产生任何异常,它似乎在 Neovim 中工作正常。
pip3 install jedi
安装的默认版本产生ImportError的原因超出了我的猜测。也许这个版本本身有问题,也许是我的 python 环境有些怪癖...
编辑:根据下面评论中的 David Halter,这似乎是一个 pip 错误
总之。如果你和我有同样的问题,试试这个修复。
When 运行ning import jedi
in python 3.6.8 我得到以下导入错误(完整回溯见 post 末尾):
...
from jedi.common import traverse_parents
ImportError: cannot import name 'traverse_parents'
我检查了 ~/.local/lib/python3.6/site-packages/jedi/common.py
:有一个函数叫做 traverse_parents
好吧所以肯定有一些巫术在起作用。这不是我第一次 运行 遇到那些“未定义的名称”问题之一,但我 运行 对此一无所知。
已经尝试过:
- 正在卸载、重新安装、升级 pip3 的“jedi”包
- 其他几个名称中带有“绝地武士”的软件包的爵士乐几乎相同
- 正在将 pip3 升级到 20.2.1 并重做相同的重新安装例程
- 为 python2 安装 jedi 因为为什么不呢(嘿,它在 python2 中工作正常但谁在乎)
- 还尝试从 apt-get 安装 python-jedi(后来我删除了它)
- 古代巴比伦恶魔的咒语(无济于事,他们星期天不工作)
关于如何修复它的模糊线索:
- 从 github 获取最新版本的绝地武士并以某种方式安装它而不会造成混乱(机会多)
- 卸载 jedi 并从 Neovim 中重新安装它(嘿,这可能会实现前一点)
我在网上搜索了这个问题的答案,但一无所获。有没有人经历过类似的事情并设法解决了?
欢迎提出任何建议。
完整回溯:
Error detected while processing function provider#python3#Call:
line 18:
Error invoking 'python_execute' on channel 5 (python3-script-host):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/vee/.local/lib/python3.6/site-packages/jedi/__init__.py", line 32, in <module>
from jedi.api import Script, Interpreter, set_debug_funcion, \
File "/home/vee/.local/lib/python3.6/site-packages/jedi/api/__init__.py", line 24, in <module>
from jedi.api import classes
File "/home/vee/.local/lib/python3.6/site-packages/jedi/api/classes.py", line 26, in <module>
from jedi.inference import imports
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/__init__.py", line 70, in <module>
from jedi.inference import imports
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/imports.py", line 24, in <module>
from jedi.inference import sys_path
File "/home/vee/.local/lib/python3.6/site-packages/jedi/inference/sys_path.py", line 8, in <module>
from jedi.common import traverse_parents
ImportError: cannot import name 'traverse_parents'
已修复: 我用这个命令通过 pip 重新安装了最新版本的 jedi :
pip3 install -e git://github.com/davidhalter/jedi.git#egg=jedi
现在,命令 import jedi
不会产生任何异常,它似乎在 Neovim 中工作正常。
pip3 install jedi
安装的默认版本产生ImportError的原因超出了我的猜测。也许这个版本本身有问题,也许是我的 python 环境有些怪癖...
编辑:根据下面评论中的 David Halter,这似乎是一个 pip 错误
总之。如果你和我有同样的问题,试试这个修复。