5
在网上阅读后,我注意到有人承诺Python 2.7会将绝对导入作为默认值。不过现在看来,这是不是这样,那我们还是要用如何使absolute_import成为所有模块的默认设置
from __future__ import absolute_import
我不希望我的代码中使用一些旧的设置,所以我要确保所有的模块都具有此功能。如何做到这一点,而不必在每个模块中重复这个声明?
在网上阅读后,我注意到有人承诺Python 2.7会将绝对导入作为默认值。不过现在看来,这是不是这样,那我们还是要用如何使absolute_import成为所有模块的默认设置
from __future__ import absolute_import
我不希望我的代码中使用一些旧的设置,所以我要确保所有的模块都具有此功能。如何做到这一点,而不必在每个模块中重复这个声明?
from __future__
必须先进行导入,并且是模块特定的。没有简单的方法让所有的模块都能正常工作,而不需要在所有的模块中使用该线路。
我相信你可以使用grep
(如果没有,滚动你自己的)来告诉你哪个模块做的是而不是那里有那条线。
如果您想要做到这一点,请查看importlib
或替换__import__
。使用这两种方法,你可以打开.py
文件,插入
from __future__ import absolute_import
线(如果尚未有),然后做实际进口。但请注意,不要将该行添加到除您自己之外的其他模块,因为您无疑会从预期相对导入语义的模块中获取错误。
与其说这是一个模糊计划的承诺。 “Python 2.5中的新功能”(http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports)说“可能”。 –