2010-05-25 120 views
2

我有2个文件一个Python项目: epic.py site.py无法导入一个Python模块

在epic.py我

from site import * 
bark() 

在site.py我行有行

def bark(): 
    print('arf!') 

,当我尝试运行epic.py,则返回“汪汪没有定义”
这是奇怪。

回答

5

尝试将site.py重命名为mysite.py或类似的东西,因为有一个标准的Python site模块。

+0

难怪我没有在文档中找到任何有关它的信息.. 是否有一个禁止名称的简短列表? – Asaf 2010-05-25 19:29:33

+0

http://docs.python.org/library/ - 在左边使用快速搜索显示与此相关的所有内容(以'site'开头的第一个结果就是模块) – wvd 2010-05-25 19:31:30

+0

您可以随时尝试导入名称以在使用前检查它它。您也可以在导入的模块上调用'dir()'来查看模块中的函数是否是您期望的。 – 2010-05-25 19:52:33

1

这是因为site也是内置模块的名称。您并未真正导入您的定制site模块。如果您将名称更改为site_.py并相应地导入,则它将起作用。