修复 python3.7 + vim8 + python-mode Error detected while processing function pymode#breakpoint#init:

Posted on Posted in python

修复 python3.7 + vim8 Error detected while processing function pymode#breakpoint#init:

问题(坑爹的货,还是改源码)

Error detected while processing function pymode#breakpoint#init:
line   22:
/must>not&exist/foo:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
Press ENTER or type command to continue

解决

官方文档已经更改

importlib.find_loader(name, path=None)
Find the loader for a module, optionally within the specified path. If the module is in sys.modules, then sys.modules[name].__loader__ is returned (unless the loader would be None or is not set, in which case ValueError is raised). Otherwise a search using sys.meta_path is done. None is returned if no loader is found.

A dotted name does not have its parents implicitly imported as that requires loading them and that may not be desired. To properly import a submodule you will need to import all parent packages of the submodule and use the correct argument to path.

New in version 3.3.

Changed in version 3.4: If __loader__ is not set, raise ValueError, just like when the attribute is set to None.

Deprecated since version 3.4: Use importlib.util.find_spec() instead.

根据文档, 替换

 vim ~/.vim/bundle/python-mode/autoload/pymode/breakpoint.vim

#from imp import find_module
from importlib.util import find_spec as find_module

Leave a Reply

Your email address will not be published. Required fields are marked *

three × two =