2012-05-28 33 views
5

在网上阅读后,我注意到有人承诺Python 2.7会将绝对导入作为默认值。不过现在看来,这是不是这样,那我们还是要用如何使absolute_import成为所有模块的默认设置

from __future__ import absolute_import 

我不希望我的代码中使用一些旧的设置,所以我要确保所有的模块都具有此功能。如何做到这一点,而不必在每个模块中重复这个声明?

+0

与其说这是一个模糊计划的承诺。 “Python 2.5中的新功能”(http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports)说“可能”。 –

回答

2

from __future__必须先进行导入,并且是模块特定的。没有简单的方法让所有的模块都能正常工作,而不需要在所有的模块中使用该线路。

我相信你可以使用grep(如果没有,滚动你自己的)来告诉你哪个模块做的是而不是那里有那条线。

如果您想要做到这一点,请查看importlib或替换__import__。使用这两种方法,你可以打开.py文件,插入

from __future__ import absolute_import 

线(如果尚未有),然后做实际进口。但请注意,不要将该行添加到除您自己之外的其他模块,因为您无疑会从预期相对导入语义的模块中获取错误。

相关问题