我在同一目录中有两个文件,lattice.py和site.py。
lattice.py
from site import Site
class Lattice:
<stuff>
site.py
import random
class Site:
<stuff>
但是当我尝试运行lattice.py时,我得到一个&#34;无法导入名称Site&#34;错误。但是,如果我将site.py重命名为banana.py并相应地更改代码,则一切正常。文件名&#34;网站&#34;
有什么问题答案 0 :(得分:3)
正如@MartijnPieters所指出的,已经有site.py
自动导入。
问题是您的site.py
与Python的site.py
发生冲突(site.py
未由from site import Site
导入,并且python中没有Site
类site.py
)。
解决方案是将该文件的名称更改为其他名称(如您所见),或使用解释程序的-S选项禁止自动导入(如@MartijnPieters link所示)。 / p>
答案 1 :(得分:3)
(其他答案已经解释了为什么会出现错误,所以不在此重复)
一般来说,使用相对导入更安全,更推荐使用:
from .site import Site
您也可以考虑添加“absolute_import”指令(如果使用python 2.x):
from __future__ import absolute_import
有关this question中绝对/相对导入的详细信息。