Python相对导入问题

时间:2010-09-24 01:06:15

标签: python django import

我正在使用Python 2.6并将Facebook API作为python包安装(在/usr/lib64/python2.6/site-packages/facebook / ...下),这意味着它可以使用普通的{{ 1}}或import facebook

只要没有名称冲突,这种方法效果很好。例如,在我的项目中,我尝试使用

在project.facebook中的代码中导入Facebook API
from facebook import ...

根据我的理解,这应该有效,因为dot明确告诉Python在包层次结构中一步查找包,而不是尝试导入它已经解析的project.facebook包。

但是,它不起作用:

  

无法导入project.views。错误是:无法导入名称GraphAPI

project.views是另一个包含project.facebook的源代码文件(我正在使用Django,但我不确定它是否与它有关)。

我知道,我可以重命名我的源文件或使用from .facebook import GraphAPI (效果很好),但我认为两者都是解决方法。

from __future__ import absolute_import没有任何理由不起作用吗?

更新

以下是我的工作区目录中ls -R的输出(其中包含proj作为唯一的项目)。

以下内容位于/ home / chris / dev / workspace /下,而Facebook Python API全局安装(在/usr/lib64/python2.6/site-packages/facebook / ...中)。 / p>

from .facebook import ...

1 个答案:

答案 0 :(得分:0)

显然(根据http://docs.python.org/whatsnew/2.5.html#pep-328),from __future__ import absolute_import没有办法,所以我想我必须对__future__导入感到满意才能解决我的名字阴影问题