繁体   English   中英

python import执行本地文件

[英]python import executes local files

嗨,我是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

没错, 当前目录中的模块将首先加载

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

from html.parser import tokenize

代替:

import tokenize

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

from html.parser import tokenize as ext_tokenize

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM