资讯专栏INFORMATION COLUMN

解决 vim 报错:the imp module is deprecated in favour o

Raaabbit / 3132人阅读

摘要:问题描述打开之后,出现如下错误原因这是。从之后已经不再使用。显然,这个问题是由这个插件加载时引起的,可以通过修改源码解决。

问题描述

打开 vim 之后,出现如下错误:

Error detected while processing function youcompleteme#Enable[3]..71_SetUpPython:
line   42:
/must>not&exist/foo:1: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module"s documentation for alternative uses

原因:
这是 python warning
imppython3.4 之后 已经不再使用。
显然,这个问题是由 ycm 这个插件加载时引起的,可以通过修改 ycm 源码解决。

解决办法

有以下几种:
1.重新安装 vim,但是采用较低版本的 python
2.修改 ycm 报错部分的代码
具体修改如下:
vim PLUG_PATH/YouCompleteMe/autoload/youcompleteme.vim
修改如下:

diff --git a/autoload/youcompleteme.vim b/autoload/youcompleteme.vim
index 597eb020..32461fa9 100644
--- a/autoload/youcompleteme.vim
+++ b/autoload/youcompleteme.vim
@@ -180,7 +180,7 @@ endfunction


 function! s:SetUpPython() abort
-  exec s:python_until_eof
+  silent! exec s:python_until_eof
 from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import division

参考:Error message printed first time python3 (version 3.7.0) dynamic library is imported


更新:这个问题出现在使用 Python 3.7 的情况,
可以暂时在 .vimrc 中做如下配置,并等待更新 Python 3.7 来解决这个问题:

" temporary fix
" https://github.com/vim/vim/issues/3117
if has("python3")
  silent! python3 1
endif

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41943.html

相关文章

  • 解决 vim 报错the imp module is deprecated in favour o

    摘要:问题描述打开之后,出现如下错误原因这是。从之后已经不再使用。显然,这个问题是由这个插件加载时引起的,可以通过修改源码解决。 问题描述 打开 vim 之后,出现如下错误: Error detected while processing function youcompleteme#Enable[3]..71_SetUpPython: line 42: /must>not&exist/...

    import. 评论0 收藏0
  • mac Os下全局安装vue cli3.0出现的报错解决方案

    摘要:直接全局安装是会出现错误错误如下这种错误提示是你没有权限将安装文件直接写入一个权限控制文件里。 直接 npm install -g @vue/cli全局安装是会出现错误 错误如下: Last login: Tue Oct 30 23:43:58 on ttys000 asusdeMac:~ asus$ npm install -g @vue/cli npm WARN deprecate...

    AlphaWatch 评论0 收藏0
  • 剖析 createjs.Graphics

    摘要:需要分析第二类。这意味着第二类方法生成的命令会在下次调用是被追加到数组上。另外不会清空数组,却会把置为见行。功能上在形式上完全一样,所以只需要分析即可。正好与语式左右互换。 在长期使用 createjs 的过程中,我一直有这样一个经验:「beginFill 必须在 drawXXX 之前调用,否则 beginFill 会被忽略(是的不报错)」。但是为什么会这样,其实并没有去深究它。今天很...

    EasonTyler 评论0 收藏0

发表评论

0条评论

Raaabbit

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<