导入错误:无法导入名为namedtuple的模块

8 投票
3 回答
19254 浏览
提问于 2025-04-18 15:15

我有一个Python脚本,在运行时出现了以下错误:

import urllib2
File "C:\Python27\lib\urllib2.py", line 94, in <module>
import httplib
File "C:\Python27\lib\httplib.py", line 73, in <module>
from urlparse import urlsplit
File "C:\Python27\lib\urlparse.py", line 119, in <module>
from collections import namedtuple
ImportError: cannot import name namedtuple

我还使用了一个叫做openpyxl的包,它位于C:\Python27\Lib\site-packages目录下,这个包里面有一个collections文件夹,里面有一个__init__.py文件。我觉得这可能是导致问题的原因,因为它可能阻止了Python 2.7的collections模块被导入。

我该怎么做才能解决这个问题呢?

3 个回答

1

我也遇到过同样的问题,不过我把集合包改成了一个简单的文件夹后就好了。

我只是把集合里的init.py文件删掉了。

这个问题可能是因为包的名字叫“Collections”。你也可以通过把集合包改个名字来解决这个问题。

2

如果你在使用PyCharm这个工具,想要解决一些问题,可以试着去修改运行配置,把“将源代码路径添加到PYTHONPATH”这个选项取消勾选,这样就能解决问题了。

19

如果你的本地脚本里有一个叫“collections”的模块,这种情况也可能会发生。这是因为Python在处理相对导入和绝对导入时的方式。

撰写回答