Skip to main content
 首页 » 编程设计

python import 执行本地文件

2025年05月04日8lori

嗨,我是 python 的新手,我想详细了解以下内容:

我写了一个脚本,比如“foo.py”,它使用 python html 解析器,即

#!/usr/lib/python 
from html.parser import HTMLParser    # <-- executes ./tokenize.py ?! 
... 

意外地,在当前目录中存在另一个名为“tokenize.py”的 python 脚本。通过执行 foo.py,导入行也会触发 tokenize.py 被执行。我想本地目录具有优先权并且 html.parser 模块也有一个 tokenize.py...

但是到底发生了什么?

什么是避免将来发生此类冲突的正确方法?

谢谢

编辑:我运行 python 3.3.2

请您参考如下方法:

你是对的,modules in the current directory are loaded first .

避免这种情况的正确方法是始终按全名导入模块。在您的情况下,在 html.parser 中,您应该像这样导入 tokenize:

from html.parser import tokenize 

代替:

import tokenize 

如果 html.parser 是您无法控制的外部模块,只需将您的 tokenize.py 重命名为其他名称,例如:

from html.parser import tokenize as ext_tokenize