Python 2.7.15执行get-pip.py报错:ImportError: No module named _collections
问题原因与排查方案
核心原因:PYTHONHOME和PYTHONPATH配置错误
你遇到的ImportError: No module named _collections以及无法导入time模块的问题,根源在于PYTHONHOME和PYTHONPATH的设置完全不符合Python的预期:
PYTHONHOME应该指向Python的安装根目录(即~/python2715),但你却设置成了lib子目录和site-packages路径。这个环境变量是Python用来定位自身核心库和扩展模块的基准路径,错误的设置会让Python找不到_collections、time这类内置C扩展模块的实际存储位置(它们通常在~/python2715/lib/python2.7/lib-dynload下)。PYTHONPATH是用来添加自定义模块搜索路径的,不需要包含Python自带的lib/python2.7或site-packages——Python启动时会自动扫描这些默认路径。你添加的路径反而干扰了Python的正常模块搜索逻辑。
另外,os、sys能正常导入是因为它们是直接嵌入到Python二进制文件中的最核心模块,不受PYTHONHOME错误配置的影响。
修复步骤
修正PYTHONHOME
把它设置为Python的安装根目录:export PYTHONHOME=~/python2715如果你想永久生效,把这行添加到你的shell配置文件(比如
~/.bashrc或~/.zshrc)中,然后执行source ~/.bashrc(对应你的配置文件)刷新环境。调整PYTHONPATH
删除不必要的默认路径,只保留你自己的自定义模块目录(如果有的话):# 比如只有自定义模块目录的话: export PYTHONPATH=~/my_custom_python_modules # 如果不需要自定义路径,可以直接清空: unset PYTHONPATH验证修复效果
重启终端后,运行以下命令测试:python -c "import time; import _collections; print('模块导入成功')"如果没有报错,再重新执行
python get-pip.py --user即可正常安装pip。
还需检查的内容
- PATH环境变量:确保
~/python2715/bin在PATH的最前面,避免系统自带的Python版本干扰当前安装的Python 2.7.15。可以通过echo $PATH查看,若位置不对,调整为:export PATH=~/python2715/bin:$PATH - Python模块路径完整性:运行
python -c "import sys; print('\n'.join(sys.path))",检查输出中是否包含以下路径:~/python2715/lib/python2.7~/python2715/lib/python2.7/lib-dynload~/python2715/lib/python2.7/site-packages
如果缺失,说明环境变量仍未配置正确。
- 安装目录权限:确保你对
~/python2715及其子目录有读取权限,避免因权限不足导致无法加载模块。可以用ls -ld ~/python2715查看权限,必要时用chmod -R u+r ~/python2715赋予读取权限。
内容的提问来源于stack exchange,提问作者Rho Phi
相关产品推荐
相关产品推荐

