Travis CI多语言构建中Python3.6缺失pip模块的问题求助
解决Travis CI中Python 3.6的pip找不到问题
我来帮你梳理下问题根源和解决办法:
核心原因
你遇到的/usr/bin/python3: No module named pip错误,本质是Travis CI里的python3命令指向的是系统默认的Python版本(比如Ubuntu镜像自带的3.5),而不是你指定的Python 3.6。系统默认的Python 3版本通常没有预装pip,而你指定的3.6版本其实已经在虚拟环境里配置好了,只是你没用到正确的命令去调用它。
快速修复方案
Travis CI在指定Python版本后,会自动激活对应版本的虚拟环境,此时直接用python(而不是python3)和pip命令就会指向你指定的版本。你可以把before_script改成这样:
before_script: # 升级pip到最新版本(Travis会自动关联到当前指定的Python版本) - pip install --upgrade pip
如果担心某些环境下pip缺失,也可以保留兜底的安装逻辑,但要使用正确的命令:
before_script: - python -m pip install --upgrade pip || wget https://bootstrap.pypa.io/get-pip.py | python
为什么之前的脚本没用?
你之前用python3调用的是系统级的Python解释器,和Travis为你创建的Python 3.6虚拟环境完全是两个独立的环境。哪怕你通过get-pip.py给系统Python装了pip,也不会影响到你的3.6构建环境。
验证方法
为了确认环境是否正确配置,可以在script里加几行验证命令:
script: - which python # 应该输出类似 /home/travis/virtualenv/python3.6/bin/python - which pip # 对应输出该虚拟环境下的pip路径 - python --version # 确认是3.6.x - pip --version
极端情况的兜底方案
如果上述方法都不生效,你可以直接指定虚拟环境里的Python路径来安装pip:
before_script: - $HOME/virtualenv/python3.6/bin/python -m pip install --upgrade pip
内容的提问来源于stack exchange,提问作者Psycho Punch
相关产品推荐
相关产品推荐

