Python似乎不喜欢名称“网站”?

时间:2014-05-10 18:11:01

标签: python

我在同一目录中有两个文件,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;

有什么问题

2 个答案:

答案 0 :(得分:3)

正如@MartijnPieters所指出的,已经有site.py自动导入。

问题是您的site.py与Python的site.py发生冲突(site.py未由from site import Site导入,并且python中没有Sitesite.py)。

解决方案是将该文件的名称更改为其他名称(如您所见),或使用解释程序的-S选项禁止自动导入(如@MartijnPieters link所示)。 / p>

答案 1 :(得分:3)

(其他答案已经解释了为什么会出现错误,所以不在此重复)

一般来说,使用相对导入更安全,更推荐使用:

from .site import Site

您也可以考虑添加“absolute_import”指令(如果使用python 2.x):

from __future__ import absolute_import

有关this question中绝对/相对导入的详细信息。