我有各种使用外部命令的python插件,例如pydoc
。我希望能够将所有适当的命令设置为他们的python 3对应物,这需要某种形式的python 3自动检测。我不确定这是否可以可靠地完成,因为python 2/3之间没有太多区别因素。最后,我想要一个看起来像这样的函数:
function! IsPythonThree()
... code for detection goes here ...
return result
endfunction
我能看到这一切的唯一方法是通过一些正则表达式的魔法,我不知道如何使用。
答案 0 :(得分:0)
Python 2和3之间存在重大差异,尤其是考虑到from __future__ import ...
时。你想怎么处理这样的代码?如Python 2或3?
所以我不认为你能够写出100%万无一失的测试。
一种可能的方法是使用-3
选项使用python2执行代码。这将测试2to3
无法修复的不兼容性。如果找到了,那肯定是python 2代码。
另一种方法是使用python 2和3执行该文件,并检查中是否只有一个返回错误。