如何使absolute_import成为所有模块中的默认值

时间:2012-05-28 13:10:19

标签: python import python-2.7

在网上阅读之后,我注意到有人承诺Python 2.7会使用绝对导入作为默认值。然而,似乎并非如此,我们仍然必须使用

from __future__ import absolute_import

我不希望我的代码使用某些旧版设置,所以我想确保所有模块都启用了此功能。怎么做,而不必在每个模块中重复这个陈述?

1 个答案:

答案 0 :(得分:2)

必须首先执行

from __future__导入,并且这些导入是特定于模块的。没有简单的方法让它对所有模块都有效,而实际上并没有将所有模块放在所有模块中。

我相信您可以使用grep(如果没有,请自行推送)告诉您哪些模块中包含该行。

如果您想这么做,请查看importlib或替换__import__。使用这两种方法中的任何一种,您都可以打开.py文件,插入

from __future__ import absolute_import

行(如果还没有),然后执行实际导入。请注意,除了您自己的模块之外,不要将该行添加到其他模块中,因为您无疑会从期望相对导入语义的模块中获得错误。