Python:禁用相对导入

7
我会尽力帮助您翻译以下内容,涉及编程相关内容。

可能是重复的:
当本地模块与Python标准库模块同名时,如何访问Python标准库模块?

我正在使用Python 2.6。

我在我的应用程序中仅使用绝对导入。现在我有这个问题:

myapp 
  |
   -- myscript 
   -- json
        |
         -- anotherscript.py

在我的脚本中,我有:
import json
import myapp.json.anotherscript

由于Python相对导入机制的原因,import json不会将内置库导入到我想要的命名空间中,而是将我的自定义json包导入到当前命名空间中。
有没有办法在Python中禁用相对导入,或者至少有一个方法可以避免在这种情况下使用它?否则,我将不得不将我的包重命名为其他名称,这个名称并不像jsonutils那么有意义。
提前感谢。

3
为什么你要避免使用 from . import json 这样的语法呢?这种语法是为了解决你的问题而引入的!总之,作为一个规则,永远不要像内置模块一样命名一个模块。 - Bakuriu
1个回答

18
from __future__ import absolute_import

PEP-328中有描述


似乎无法在Python 2.7中工作。 - sorin
@sorin 它是怎么失败的?在我的2.7上它运行得很好。 - silviot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接