RISCV64架构下pip安装lintrunner遇appdirs导入错误
解决RISCV64 Ubuntu 24.04下安装lintrunner的
ImportError: cannot import name 'appdirs' from 'pkg_resources.extern'问题 针对你在RISCV64架构Ubuntu 24.04.1(Python 3.12.3)环境中安装lintrunner遇到的错误,结合新版本Python/setuptools的变化(appdirs已被platformdirs替代),可以尝试以下几种解决方案:
方案一:降级setuptools到兼容版本
Python 3.12搭配的新版setuptools已移除pkg_resources.extern.appdirs这个导入路径,而lintrunner的构建依赖可能仍在尝试调用该接口。你可以临时降级setuptools到保留该接口的版本,再安装lintrunner:
# 先降级setuptools pip install setuptools==59.6.0 # 再安装lintrunner pip install lintrunner
方案二:跳过构建隔离安装
pip默认会创建隔离环境来安装构建依赖,可能导致隔离环境中缺少platformdirs或相关兼容配置。使用--no-build-isolation参数,强制使用当前虚拟环境已安装的包进行构建:
pip install lintrunner --no-build-isolation
方案三:手动映射platformdirs替代appdirs
如果上述方法无效,可以通过hack方式让pkg_resources.extern.appdirs指向已安装的platformdirs:
- 找到虚拟环境的site-packages路径,比如
venv/lib/python3.12/site-packages - 在该路径下创建
pkg_resources/extern/appdirs.py文件,内容如下:
from platformdirs import *
- 再次执行
pip install lintrunner
方案四:本地修改lintrunner依赖后构建
如果lintrunner是开源项目,可以克隆源码后修改依赖配置,将appdirs替换为platformdirs:
- 克隆仓库:
git clone https://github.com/facebook/lintrunner.git - 进入仓库目录,修改
pyproject.toml或setup.py中的依赖项,将appdirs替换为platformdirs - 本地安装:
pip install .
内容的提问来源于stack exchange,提问作者Franks
相关产品推荐
相关产品推荐

