为了账号安全,请及时绑定邮箱和手机立即绑定

在 3.5.3 virtualenv 中运行时 Vim 中的 Python 错误

在 3.5.3 virtualenv 中运行时 Vim 中的 Python 错误

手掌心 2021-12-21 16:21:14
我pyenv在 Ubuntu 16.04 上安装了多个 Python 版本。我创建了虚拟环境来处理使用不同版本的项目pipenv。然而,为Python 3.5.x的只有我得到这样的错误,当我尝试用Vim编辑8(通过安装的文件PPA)在激活的virtualenv:"test.py" 49L, 1434CError detected while processing function jedi#init_python[4]..<SNR>48_init_python[27]..jedi#setup_python_imports:line   25:Traceback (most recent call last):  File "<string>", line 1, in <module>  File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/imp.py", line 19, in <module>    from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name  File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/importlib/__init__.py", line 57, in <module>    import types  File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/types.py", line 166, in <module>    import functools as _functools  File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/functools.py", line 23, in <module>    from weakref import WeakKeyDictionary  File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/weakref.py", line 12, in <module>    from _weakref import (ImportError: cannot import name '_remove_dead_weakref'这个问题似乎影响了所有与 python 相关的 Vim 插件。对于其他 Python 版本(例如 3.6.x、3.7.x),不会发生这种情况。什么可能导致这个问题?更新:似乎当我在 3.5.x virtualenv 中运行 Vim 时,Vim 的解释器sys.path会以某种方式更新。例如,这是:py3 import sys; print(sys.path)3.6.0 virtualenv 内部的输出:['/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages', '_vim_path_']这是 3.5.3:Traceback (most recent call last):  File "<string>", line 1, in <module>  File "/home/testuser/.local/share/virtualenvs/venv-3.5-8feRiT5s/lib/python3.5/imp.py", line 19, in <module>    from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name  File "/home/testuser/.local/share/virtualenvs/venv-3.5-8feRiT5s/lib/python3.5/importlib/__init__.py", line 57, in <module>    import types该问题可以在ubuntu:16.04docker 容器中重现。
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

尝试使用 sudo 运行 python。我认为操作系统附带的python需要以管理员权限运行。


查看完整回答
反对 回复 2021-12-21
?
智慧大石

TA贡献1946条经验 获得超3个赞

Debian 错误报告日志 - #852163:python3.5-minimal wont configure表明此错误(对于 Python 3.5 和 Python 3.6)是由于 /usr/local 中另一个不兼容的 Python 安装造成的。

与#debian 中遇到此问题的另一位用户进行的进一步挖掘表明,它与本地安装的/usr/local/bin/python3.5 有关。/usr/lib/python3.5 中的 stdlib 被 /usr/local/bin/python3.5 拾取,但与它不兼容,导致显示堆栈跟踪。

从 /usr/local/lib(以及其他相关工具)中删除 /usr/local/bin/python3* 和该安装的所有痕迹为我在 #debian 中帮助的用户解决了这个问题。

——斯图尔特·普雷斯科特(链接)

问题是系统安装了python,与个人安装的python冲突。


查看完整回答
反对 回复 2021-12-21
?
UYOU

TA贡献1878条经验 获得超4个赞

可能是其他 python 版本在这里干扰的情况。你PYTHONPATH有一套吗?

echo $PYTHONPATH

如果已设置,您可以尝试取消设置。使用虚拟环境时通常不需要它。


查看完整回答
反对 回复 2021-12-21
  • 3 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信