Python2.7使用multiprocessing处理大文件时出现导入错误求助
解决Python 2.7 multiprocessing Pool导入错误的问题
看起来你遇到的这个导入错误,大概率是脚本文件名和标准库模块重名导致的——这是Python多进程使用中非常常见的坑!
为什么会出现这个问题?
当你运行名为multiprocessing.py的脚本时,Python会优先从当前目录导入模块,而不是去加载标准库的multiprocessing模块。这就导致你的代码里from multiprocessing import Pool实际上是在尝试从你自己的脚本里导入Pool,自然会失败。
而在控制台直接执行导入时,当前目录下的脚本不会干扰标准库模块的导入(除非你主动把当前目录的脚本当成模块导入),所以能正常运行。
验证与解决方法
- 检查你的脚本文件名是不是叫
multiprocessing.py,如果是,立刻改成不与标准库重名的名字,比如file_processor.py。 - 删除当前目录下可能生成的
multiprocessing.pyc缓存文件,避免残留缓存影响后续运行。
其他排查方向(如果文件名没问题)
如果文件名不存在重名问题,可以试试以下步骤:
- 打印模块搜索路径,确认标准库路径是否正常:
import sys print(sys.path) - 检查脚本所在目录有没有其他自定义的
multiprocessing相关文件,比如自己写的模块或包,这些可能干扰标准库模块的导入。 - 确认你的Python 2.7环境完整,
multiprocessing模块没有被意外损坏或删除(不过控制台能正常导入的话,这个可能性极低)。
补充说明
你的代码逻辑本身是没问题的,确保文件名修正后,应该就能正常运行多进程处理文件的逻辑了。另外,Python 2.7中print是语句,你写的print results是合法的,但如果后续考虑迁移到Python3,记得改成print(results)的函数形式。
内容的提问来源于stack exchange,提问作者Trupti
相关产品推荐
相关产品推荐

