我有一个名为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是这个问题应该得到的解决方案,但它不是现在所需要的。
答案 0 :(得分:1)
添加from __future__ import absolute_import
作为文件的第一行。
这会强制所有进口都是绝对的而不是相对的。因此import Queue
将导入标准模块,导入您使用from . import foobar