python导入执行本地文件

python导入执行本地文件,python,Python,您好,我是python新手,我想详细了解以下内容: 我已经编写了一个脚本,比如“foo.py”,它使用PythonHTML解析器,即 #!/usr/lib/python from html.parser import HTMLParser # <-- executes ./tokenize.py ?! ... #/usr/lib/python 从html.parser导入HTMLParser#您是对的 避免这种情况的正确方法是始终按全名导入模块。在您的情况下,在html.parse

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

我已经编写了一个脚本,比如“foo.py”,它使用PythonHTML解析器,即

#!/usr/lib/python
from html.parser import HTMLParser    # <-- executes ./tokenize.py ?!
...
#/usr/lib/python
从html.parser导入HTMLParser#您是对的

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

from html.parser import tokenize
而不是:

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

from html.parser import tokenize as ext_tokenize

您正在运行哪个版本的Python?在导入之前尝试一下:
from\uuuuu future\uuuuu import absolute\u import
我还不了解这个相对和绝对的导入业务,但是
from\uuu future\uuuuu import absolute\u import
不会改变任何事情。对不起@gmoktop在你说python3之前。好的,我明白了,但我根本不导入
tokenize
。我该如何知道
HTMLParser
拉入了什么?@gmoktop如果出现此错误,则意味着
HTMLParser
确实导入了
tokenize
。你可以随时查看它的源代码并验证它。好的,我做了一些搜索。我找到的唯一解决方案是1)编辑模块搜索sys.path 2)确保没有名称冲突,这两个都不是很令人满意。。