在清除sys.path之后,python如何进行导入 - 导入优先级

时间:2015-02-26 05:24:23

标签: python python-2.7 ipython python-import

我有一个名为Queue的python模块与python中的默认队列冲突。

在尝试强制导入默认队列时,我试图简单地清除sys.path。

我理解从sys.path查找导入。 但是在我清除syspath之后,Python似乎仍然能够导入模块。

请解释一下!

In [26]: sys.path
Out[26]: []
In [27]: import datetime
In [28]: datetime
Out[28]: <module 'datetime' from '/usr/local/python2.7/lib/python2.7/lib-dynload/datetime.so'>
In [31]: import xyz.Queue
In [32]: xyz.Queue
Out[32]: <module 'xyz.Queue' from '/public/abc/def/ghi/xyz/Queue/__init__.pyc'>
In [33]: sys.path
Out[33]: []

另外如何导入本机模块队列而不是队列。

我知道重构Queue是这个问题应该得到的解决方案,但它不是现在所需要的。

1 个答案:

答案 0 :(得分:1)

添加from __future__ import absolute_import作为文件的第一行。

这会强制所有进口都是绝对的而不是相对的。因此import Queue将导入标准模块,导入您使用from . import foobar

的本地模块