2012-07-14 49 views
6

我能把:如何强制我的整个包使用__future__指令?

from __future__ import absolute_import 

__init__.py对我的包和garantee顶级目录,该absolute_import将被应用到该包或子包内运行的所有代码?

或者我应该将该指令放入每个绝对导入的模型中?

我维护一个Python包,我试图让代码尽可能简单,以便在时间到的时候迁移到Python3。我不能马上做,因为我的依赖不在Python3中。

+0

'2to3'将在您确实需要更换时解决它们。 – katrielalex 2012-07-14 11:43:35

+3

@katrielalex:其中“修复”意味着“去除”,这甚至不是必需的,因为Python 3只是忽略所有当前的'__future__'导入。 – 2012-07-14 12:31:16

+0

请注意,从Python 3.5开始,自Python 2.6以来第一次引入了一个新的'__future__'指令'generator_stop'。 [见PEP 479](https://www.python.org/dev/peps/pep-0479/)。 – gerrit 2016-02-19 11:48:28

回答

8

不,__future__导入仅对单个文件有效。您必须将此行放在每个Python源文件的顶部。

documentation

未来的语句是一个指令,一个特定的模块应该使用语法或语义会在Python的指定的未来版本中提供汇编编译器。

相关问题