我正在使用Eclipse Kepler(2013)和python 3.3.2并运行一个简单的导入,如
import glob
a = glob.glob('*')
print(a)
给出了:
TypeError: 'module' object is not callable
如果我在Idle中运行相同的代码,则情况并非如此。我知道我错过了什么。
感谢任何帮助。
答案 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
。