Python 需要导入模块检查;由于不同的 Python 版本或 Sublime Text 导入包的方式?

Python import module check needed; due to different Python versions or the way Sublime Text imports packages?

在 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...

注意:它们的区别只是matchingpaths是否需要加前缀.

Sublime Text v3 使用 Python v3.3 而 Sublime Text v2 使用 Python v2.6.

代码工作正常,允许插件与两个版本的 Sublime Text 一起工作,但我想知道是否需要检查,因为 Sublime Text v2 和 v3 加载包的方式不同或由于到不同的 Python 版本?

谢谢。

使用点作为 directory/module 前缀表明您正在相对于包目录导入。一个点将从包目录导入;每个额外的点将进一步查找到父目录。

如果不存在点,导入将是绝对的并从 sys.path.

查找

此功能的实现始于 Python 2.4。 Python 增强建议中的信息提到了 Python 2.6.

之前并包括的问题

参考:

Python PEP 0328 -- Imports: Multi-Line and Absolute/Relative