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

需要Python导入模块检查;由于不同的Python版本或升华文本导入包的方式?,python,sublimetext,sublime-text-plugin,Python,Sublimetext,Sublime Text Plugin,在一个Sublime文本插件中,我不得不使用依赖于版本的导入,它看起来像这样: 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..

在一个Sublime文本插件中,我不得不使用依赖于版本的导入,它看起来像这样:

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...
注意:它们之间的区别只是
匹配
路径
是否需要前缀为

升华文本v3使用PythonV3.3,而升华文本v2使用PythonV2.6

代码运行良好,允许插件同时处理两个版本的Sublime文本,但我想知道是否由于Sublime文本v2和v3加载包的方式不同,或者由于Python版本不同,需要进行检查


谢谢。

使用点作为目录/模块前缀可以确定您是相对于包目录导入的。单个点将从包目录导入;每个额外的点将进一步搜索父目录

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

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

参考:
谢谢因此,您是否同意我使用的导入代码是必要的,因为升华文本v2和v3使用的Python版本不同,而不是因为升华文本的不同版本实际加载包的方式不同?我认为这两个语句是等效的。ST版本加载包的方式取决于它们各自的Python版本。我研究了这个主题以了解条件路径语句是否必要,并决定不使用您的示例中所示的绝对路径,因为和百分比正在减少。我将使用绝对路径的情况是。再次感谢。我不知道还有这么少人在使用ST2。