gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:33:52 25 4
gpt4 key购买 nike

我有一个名为 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 是这个问题应有的解决方案,但它不是它现在需要的解决方案。

最佳答案

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

这将强制所有导入都是绝对的而不是相对的。所以 import Queue 将导入标准模块,要导入本地模块,您可以使用 from 。导入 foobar

关于python - 清除 sys.path 后 python 如何进行导入 - 导入优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com