You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Termux Ubuntu环境下pip命令无法使用的报错求助

修复Termux Ubuntu环境中pip的"Cannot find path to android app folder"错误

问题根源

在Termux运行的Ubuntu容器内,系统自带的pip(路径/usr/bin/pip)依赖的platformdirs库错误识别了运行环境为安卓系统,尝试调用jnius库获取安卓应用目录,但容器内既没有jnius也不存在安卓应用目录结构,因此触发ModuleNotFoundError和OSError。

解决方案

方案1:设置环境变量强制识别为Linux环境

这是最快捷的修复方式,通过环境变量让platformdirs跳过安卓环境检测:

  • 临时生效:在终端执行以下命令后直接使用pip:
    export PLATFORM_DIRS_OVERRIDE=linux
    pip --version
    
  • 永久生效:将环境变量写入bash配置文件,重启终端后自动生效:
    echo 'export PLATFORM_DIRS_OVERRIDE=linux' >> ~/.bashrc
    source ~/.bashrc
    

方案2:安装用户级pip(推荐)

避开系统自带pip的环境问题,安装独立的用户级pip:

  1. 安装依赖工具:
    apt update && apt install curl -y
    
  2. 用官方脚本安装用户级pip:
    curl https://bootstrap.pypa.io/get-pip.py | python3 - --user
    
  3. 将用户pip的路径加入系统PATH:
    echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    
  4. 验证安装:
    pip --version
    
    此时pip路径应显示为~/.local/bin/pip,可正常使用。

方案3:修改系统pip的platformdirs配置(不推荐)

直接修改系统库的判断逻辑,但系统更新后会被覆盖:

  1. 编辑安卓环境检测文件:
    nano /usr/lib/python3/dist-packages/pip/_vendor/platformdirs/android.py
    
  2. 找到_android_folder函数,在函数开头添加一行强制返回用户目录:
    def _android_folder() -> str:
        return os.path.expanduser("~")  # 添加这一行
        # 原函数内容...
    
  3. 保存退出(按Ctrl+O,回车,再按Ctrl+X),之后pip即可正常运行。

内容的提问来源于stack exchange,提问作者Prince Godswill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:36:21