TypeError:在Eclipse中导入glob时,'module'对象不可调用

时间:2013-09-06 12:00:29

标签: python eclipse import glob

我正在使用Eclipse Kepler(2013)和python 3.3.2并运行一个简单的导入,如

import glob
a = glob.glob('*')
print(a)

给出了:

TypeError: 'module' object is not callable

如果我在Idle中运行相同的代码,则情况并非如此。我知道我错过了什么。

感谢任何帮助。

4 个答案:

答案 0 :(得分:6)

可能在Eclipse环境中有一个名为glob的模块,它在标准库之前导入。

尝试打印glob.__file__以查看它。

答案 1 :(得分:4)

只有在模块搜索路径中定义了一个名为glob的包时才可以这样做,因此python不是加载内置模块glob而是导入该包。

模块搜索路径中的类似内容

glob
├── glob.py
├── glob.pyc
├── __init__.py
└── __init__.pyc

会产生同样的错误:

>>> import glob
>>> glob.__file__
'/home/monty/py/glob/__init__.pyc'
>>> glob.glob()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable

您需要将此包的名称更改为其他名称,因为它似乎出现在eclipse使用的模块搜索路径上。

答案 2 :(得分:3)

在某些情况下,人们最终使用与内置模块相同的文件名。 不要将您的文件命名为&#34; glob.py&#34;。

答案 3 :(得分:2)

对我有用的是我在文件顶部将import glob更改为from glob import glob