Ubuntu18.04系统Python3.7调用pip安装包时报TypeError问题求助
问题原因
该报错是Ubuntu 18.04自带的系统默认pip版本过旧导致的不兼容问题:系统预置的pip归属Python 3.6版本,版本号低于10.0,其参数解析逻辑和Python 3.7不匹配,调用时cache_dir参数被错误传入int类型值,而非预期的路径类对象,最终触发类型错误。重装Python 3.7无法解决问题,是因为冲突的根源是系统老版本pip,而非Python本身。
可行解决方案
- 方案1:为Python 3.7单独安装匹配版本的pip(全局场景推荐)
执行如下命令单独为Python 3.7安装对应版本的pip,替换系统老旧pip:
安装完成后再执行安装命令即可正常使用:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python3.7 get-pip.pypython3.7 -m pip install pandas - 方案2:使用虚拟环境隔离依赖(开发场景推荐)
避免修改全局环境,先安装虚拟环境组件,再创建独立Python 3.7环境:
激活虚拟环境后直接执行sudo apt install -y python3.7-venv python3.7 -m venv py37env source py37env/bin/activatepip install pandas即可,所有依赖仅作用于当前虚拟环境,不会和系统环境冲突。 - 方案3:临时指定缓存目录绕过报错(应急使用)
不想修改现有环境的情况下,每次执行安装命令时手动指定合法的缓存目录路径,绕过参数解析错误:sudo python3.7 -m pip install pandas --cache-dir /tmp/pip_cache
注意:非必要不推荐使用sudo执行pip全局安装操作,容易误改系统Python依赖,导致系统工具异常。
内容的提问来源于stack exchange,提问作者Janis Börsig
相关产品推荐
相关产品推荐

