如何找出在Vim中导入python模块的原因和解决方案
我试图在Vim中设置python,但未能使其正常工作。它总是抛出一个名为如何找出在Vim中导入python模块的原因和解决方案,python,vim,Python,Vim,我试图在Vim中设置python,但未能使其正常工作。它总是抛出一个名为UnicodeDecodeError的异常 我已在windows 10上安装了gvim。并安装了相应版本的Python3。 Vim可以找到python37.dll和命令 :echo has('python3') 按预期返回1 只有当除了内置模块外没有其他模块导入时,我的vim with python才能工作 例如: :py3 print('a') 效果很好 :py3 import vim 或 我们也在工作 但是,如果
UnicodeDecodeError
的异常
我已在windows 10上安装了gvim。并安装了相应版本的Python3。
Vim可以找到python37.dll和命令
:echo has('python3')
按预期返回1
只有当除了内置模块外没有其他模块导入时,我的vim with python才能工作
例如:
:py3 print('a')
效果很好
:py3 import vim
或
我们也在工作
但是,如果我像这样编写一个简单的python脚本vim_test.py
print('这是用于vim测试')
然后尝试将其作为导入到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_test.py位于当前目录中
这个问题的原因可能是什么?
我该怎么解决呢?
我希望能够使用用python编写的vim插件。
有了这个问题,我无法做到这一点。Windows shell默认将编码设置为CP1258(或其他一些非utf-8编码),这可能是问题的根源。我不知道如何在Windows中用vim中的Python解决这个问题,但是如果可以的话,我会搜索改变vim工作的编码的方向。
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
:py3file vim_test.py