在Sublime Text插件中,我必须使用依赖于版本的导入,它看起来像这样:
python_version_major = version_info[0]
if python_version_major == 3:
from .matching import whatever...
from .paths import whatever...
elif python_version_major == 2:
from matching import whatever...
from paths import whatever...
注意:它们之间的区别仅在于matching
和paths
是否需要以.
作为前缀。
Sublime Text v3使用Python v3.3,而Sublime Text v2使用Python v2.6。
代码工作正常,允许插件使用Sublime Text的两个版本,但我想知道是否需要检查是否由于Sublime Text v2和v3加载包的方式不同或由于不同的Python版本?
感谢。
答案 0 :(得分:2)
使用点作为目录/模块前缀可确定您相对于包目录进行导入。单个点将从包目录导入;并且每个额外的点将进一步寻找父目录。
如果没有点,则导入将是绝对的,并从sys.path
寻找。
此功能的实现始于Python 2.4。 Python Enhancement Proposals的信息提到了包括Python 2.6在内的问题。