变更日志的字眼太脏了。
from __future__ import absolute_import并不关心某些东西是否是标准库的一部分,
importstring也不会总是为您提供启用绝对导入的标准库模块。
from __future__ import absolute_import表示如果您愿意
importstring,Python将始终寻找顶级
string模块,而不是
current_package.string。但是,它不会影响Python用于确定
string模块文件的逻辑。当你做
python pkg/script.py
pkg/script.py看起来不像是Python软件包的一部分。按照正常步骤,将
pkg目录添加到路径,并且
.py目录中的所有文件
pkg看起来都像顶级模块。
importstring发现
pkg/string.py不是因为它正在执行相对导入,而是因为它
pkg/string.py似乎是顶级模块
string。这不是标准库
string模块的事实并没有出现。
要将文件作为
pkg软件包的一部分运行,您可以执行
python -m pkg.script
在这种情况下,该
pkg目录将不会添加到路径中。但是,当前目录将添加到该路径。
您还可以添加一些样板文件,
pkg/script.py以使Python
pkg即使在作为文件运行时也将其视为包的一部分:
if __name__ == '__main__' and __package__ is None: __package__ = 'pkg'
但是,这不会影响
sys.path。您需要进行一些其他处理才能
pkg从路径中删除目录,如果
pkg的父目录不在路径中,则也需要将其粘贴在路径中。



