Python2.7中已安装futures包,执行import futures仍报错如何解决?
import futures的ImportError问题 这种情况我碰到过好几次,既然你已经排除了路径问题,那大概率是安装环节的版本或环境匹配问题,给你几个针对性的解决步骤:
确保安装命令针对Python 2.7
很多人系统里同时装了Python 2和Python 3,直接用pip install futures很可能把包装到Python 3的环境里,而你运行的是Python 2.7。这时候得明确指定Python 2的pip来安装:pip2 install futures # 如果pip2不存在,换这个命令试试 python2.7 -m pip install futures装完之后可以跑
pip2 show futures,看看输出里的Location是不是Python 2.7的site-packages目录,确认包确实装对了地方。检查虚拟环境的影响
如果你在用虚拟环境,得确保是激活虚拟环境之后才装的包。要是把futures装在了全局环境,却在虚拟环境里运行代码,自然找不到这个模块。解决方法很简单:激活虚拟环境,再用上面的命令重新装一遍futures。试试标准的导入方式
其实这个futures包是Python 3里concurrent.futures的向后兼容版本,标准的导入方式应该是from concurrent import futures,而不是直接import futures。你可以换这个导入语句试试,说不定问题就解决了。修复可能损坏的安装
有时候安装过程中会出现文件损坏的情况,这时候先卸载再重装就能解决:pip2 uninstall -y futures pip2 install futures --force-reinstall
要是以上方法都没效果,你可以运行python2.7 -c "import sys; print(sys.path)",手动检查输出的路径里有没有futures所在的site-packages目录——虽然你说排除了路径问题,但再确认一遍总能避免疏漏。
内容的提问来源于stack exchange,提问作者matttree

