首页 > 解决方案 > 如何找出在Vim中导入python模块这个问题的原因和解决方案

问题描述

我正在尝试在 Vim 中设置 python,但我无法让它工作。它总是抛出一个名为 的异常UnicodeDecodeError

我已经在 Windows 10 上安装了 gvim。并且还安装了相应版本的 python 3。Vim 可以找到 python37.dll 和命令

:echo has('python3')

按预期返回 1。

我的带有 python 的 vim 仅在没有导入除内置模块之外的模块时工作。

例如:

:py3 print('a')

效果很好。

:py3 import vim 

或者

:py3 import sys

也在工作。

但是,如果我像这样编写一个简单的 python 脚本 vim_test.py

print('This is for vim test')

然后尝试在 vim 中将其导入为

:py3 import vim_test

它会给出一个例外:

Traceback (most recent call last):
 File "<string>", line 1, in <module>
 File "<frozen importlib._bootstrap>", line 983, in _find_and_load
 File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked
 File "<frozen importlib._bootstrap>", line 906, in _find_spec
 File "<frozen importlib._bootstrap_external>", line 1280, in find_spec
 File "<frozen importlib._bootstrap_external>", line 1252, in _get_spec
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 9: invalid start byte

它不能在 Vim 中导入任何 python 模块。

但它可以直接运行这个脚本

:py3file vim_test.py

如果脚本文件 vim_test.py 在当前目录中。

这个问题的原因可能是什么?我该如何解决?我希望能够使用用 python 编写的 vim 插件。有了这个问题,我无法做到这一点。

标签: pythonvim

解决方案


推荐阅读