[英]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.