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...
注意:它们的区别只是matching
和paths
是否需要加前缀.
。
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
在 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 版本?
谢谢。
使用点作为 directory/module 前缀表明您正在相对于包目录导入。一个点将从包目录导入;每个额外的点将进一步查找到父目录。
如果不存在点,导入将是绝对的并从 sys.path
.
此功能的实现始于 Python 2.4。 Python 增强建议中的信息提到了 Python 2.6.
之前并包括的问题