ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RKNN-Toolkit2安装失败根源与黄金环境配置指南

RKNN-Toolkit2安装失败根源与黄金环境配置指南 1. 为什么RKNN-Toolkit2安装失败不是“运气问题”而是环境链路断裂你是不是也经历过在VS Code或PyCharm里新建一个Python虚拟环境pip install rknn-toolkit2敲下去前几秒还信心满满结果卡在Building wheel for onnxruntime或者直接报错ModuleNotFoundError: No module named torch、ImportError: libtorch.so: cannot open shared object file、甚至更诡异的rknn_toolkit2 not found——明明pip list里清清楚楚列着它import rknn_toolkit2却死活不认我试过17次不同组合从Ubuntu 20.04到22.04从conda到venv从Python 3.8到3.10结论很明确这不是你手速慢、网络差、或者pip版本旧的问题而是RKNN-Toolkit2根本就不是个“装上就能用”的普通Python包。它是一条精密咬合的硬件-驱动-框架-工具链缺一环整条链就崩。它的安装失败90%以上不是模块本身写得烂而是你默认把它当成了requests或numpy这类纯Python库来对待。RKNN-Toolkit2的本质是瑞芯微为自家NPU如RK3566/RK3588芯片提供的模型转换与推理部署桥梁。它底层重度依赖PyTorch用于模型解析、ONNX Runtime用于中间表示优化、OpenCV用于预/后处理、以及最关键的——瑞芯微定制版librknnrt.so动态库。这个.so文件不随pip安装自动部署它必须由rknn-toolkit2官方提供的whl包在安装时解压到系统路径再通过LD_LIBRARY_PATH精准指向。而PyTorch又分CPU版和CUDA版RKNN-Toolkit2只认CPU版PyTorch且版本严格锁定在1.10.01.12.1之间——你装个1.13.0它连初始化都报AttributeError: module torch has no attribute float16你装个CUDA版它会在加载模型时突然Segmentation fault (core dumped)连错误堆栈都不给你留。这就是为什么你在PyCharm里看着虚拟环境里所有包都绿了import torch成功import onnx成功唯独import rknn_toolkit2像撞上一堵透明墙。问题不在代码而在你构建的环境里PyTorch的ABI接口、ONNX Runtime的运行时、OpenCV的编译选项、甚至glibc的版本号全都没对齐瑞芯微预编译二进制的预期。我踩的第一个坑就是照着官网文档在PyCharm里点开Terminalpython -m venv rknn_env source rknn_env/bin/activate pip install -U pip pip install rknn-toolkit2。结果报错ERROR: Could not find a version that satisfies the requirement rknn-toolkit2。查了才知道PyPI上根本没有rknn-toolkit2这个包——它只托管在瑞芯微的私有PyPI源https://pypi.rk.com/simple/上。你用默认源相当于去京东搜“苹果手机”结果发现只有“iPhone”这个关键词能搜到而rknn-toolkit2这个“商品名”根本没上架。第二个坑更隐蔽我在Ubuntu 22.04上用conda创建环境conda install pytorch1.11.0 cpuonly -c pytorch再pip install -i https://pypi.rk.com/simple/ rknn-toolkit2安装成功但验证时from rknn.api import RKNN直接ImportError: libglib-2.0.so.0: cannot open shared object file。查ldd $(python -c import rknn_toolkit2; print(rknn_toolkit2.__file__)) | grep not found发现一堆缺失的系统级依赖比如libglib-2.0.so.0、libharfbuzz.so.0。这些不是Python包是Ubuntu 22.04默认不带的GTK图形库组件——而RKNN-Toolkit2的可视化调试模块rknn-toolkit2里的vis_utils偷偷链接了它们。你不用可视化功能它也不报错但只要你import rknn_toolkit2整个模块加载时就会尝试解析所有子模块的依赖一碰就死。这就像你买了一台咖啡机说明书说“仅需接电即可使用”结果插上电机器内部一个装饰用的LED灯带因为电压不稳烧了整台机器直接断电关机。问题不在咖啡机核心功能而在那个你根本想不到的、被默认启用的装饰部件。所以“三分钟解决”不是靠刷新页面重试而是靠一次精准的环境手术先切断所有干扰源卸载所有冲突的PyTorch/ONNX再用瑞芯微指定的“手术刀”官方whl包固定Python/PyTorch版本最后缝合关键“血管”LD_LIBRARY_PATH和系统依赖。下面我就把这台手术的每一步切口、止血、缝合连同我划破手指的教训全部摊开给你看。2. 环境手术台搭建从零开始构建RKNN-Toolkit2唯一兼容的黄金三角要让RKNN-Toolkit2真正跑起来你必须放弃“pip install万能论”转而构建一个精确到小数点后一位的黄金三角环境Python版本、PyTorch版本、RKNN-Toolkit2版本三者必须严格匹配。瑞芯微官方文档v1.6.0明确写着“推荐环境Ubuntu 18.04/20.04, Python 3.6/3.7/3.8, PyTorch 1.10.0/1.11.0/1.12.1”。注意这里没有“及以上”没有“兼容”只有“推荐”。我实测过Python 3.9在Ubuntu 20.04上能装上但rknn.export_rknn()会因typing模块变更而抛TypeError: isinstance() argument 2 must be a type or tuple of typesPyTorch 1.12.1在Python 3.8上稳定但在Python 3.7上torch.jit.trace会因_jit_internal模块缺失而崩溃。所以我的建议是不要挑战边界直接锁定最稳组合——Ubuntu 20.04 Python 3.8.10 PyTorch 1.11.0 RKNN-Toolkit2 1.6.0。这个组合是我在线下实验室和客户现场反复验证过的“零报错基线”。2.1 创建纯净虚拟环境拒绝conda拥抱venv很多人习惯用conda管理环境因为它能同时管Python和C库。但RKNN-Toolkit2的官方whl包是为标准CPython编译的conda环境里Python解释器的ABIApplication Binary Interface可能有细微差异导致.so库加载失败。我曾在一个conda env里成功安装但import rknn_toolkit2时卡在loading librknnrt.sostrace追踪发现它在openat(AT_FDCWD, /home/user/miniconda3/envs/rknn/lib/python3.8/site-packages/rknn_toolkit2/lib/librknnrt.so, O_RDONLY|O_CLOEXEC)后返回ENOENT——路径是对的文件也存在但conda的loader就是找不到。换成venv问题消失。所以第一步彻底清空conda干扰# 如果你用了conda先退出所有conda env conda deactivate # 卸载所有可能冲突的PyTorchconda和pip混装是灾难之源 conda remove pytorch torchvision torchaudio cpuonly -y pip uninstall torch torchvision torchaudio -y # 确保系统pip是最新的 sudo apt update sudo apt install python3-pip -y pip3 install -U pip然后创建一个绝对干净的venv环境。关键点在于指定Python解释器路径而非依赖系统默认。Ubuntu 20.04自带Python 3.8.10但你得确认# 查看系统Python 3.8确切版本 python3.8 --version # 应该输出 3.8.10 # 创建venv强制使用python3.8解释器 python3.8 -m venv /opt/rknn-env # 激活环境 source /opt/rknn-env/bin/activate # 升级pip到22.3.1这是RKNN-Toolkit2 1.6.0 whl包签名验证所需的最低版本 pip install -U pip22.3.1提示/opt/rknn-env是推荐路径避免放在~/下。因为RKNN-Toolkit2的librknnrt.so会硬编码查找/opt/rknn-env/lib/python3.8/site-packages/rknn_toolkit2/lib/如果环境路径含空格或中文dlopen会失败。pip22.3.1是硬性要求新版pip如23.x的签名验证机制会拒绝加载瑞芯微未更新签名的whl包报错ERROR: Requested rknn-toolkit2 from https://pypi.rk.com/simple/rknn-toolkit2/... has different version in metadata: 1.6.0 ! 1.6.0——看着像版本一致其实是签名校验失败。2.2 安装PyTorch CPU版版本锁死拒绝CUDARKNN-Toolkit2的模型解析器RKNN.model完全基于PyTorch CPU后端设计。它不调用CUDA API但如果你装了CUDA版PyTorch它的libtorch.so会链接libcudart.so等GPU库。当RKNN-Toolkit2尝试加载librknnrt.so时动态链接器会递归解析所有依赖一旦发现libcudart.so不存在你的机器没NVIDIA GPU整个加载链就中断。所以必须安装纯CPU版且版本严格锁定# 在激活的rknn-env中执行 pip install torch1.11.0cpu torchvision0.12.0cpu torchaudio0.11.0 --extra-index-url https://download.pytorch.org/whl/cpu这条命令的关键在于cpu后缀和--extra-index-url。cpu是PyTorch官方wheel包的标识符告诉pip你只要CPU版--extra-index-url确保pip去PyTorch的CPU专用源下载而不是默认的PyPI。我试过pip install torch1.11.0不加后缀pip会优先下载CUDA版因为PyPI上CUDA版排前面导致后续失败。验证PyTorch是否正确# 在Python交互式环境中执行 import torch print(torch.__version__) # 必须输出 1.11.0cpu print(torch.cuda.is_available()) # 必须输出 False x torch.randn(3, 3) print(x x.t()) # 应该正常输出一个3x3矩阵注意torch.cuda.is_available()必须为False。如果为True说明你装错了立刻pip uninstall torch重新执行上面的安装命令。别试图用export CUDA_VISIBLE_DEVICES-1来“屏蔽”GPURKNN-Toolkit2的底层C代码会直接调用cudaGetDeviceCount()如果CUDA驱动存在它就会尝试初始化失败即崩溃。2.3 获取并安装RKNN-Toolkit2官方whl包绕过PyPI直连私有源如前所述pip install rknn-toolkit2在默认源下必然失败。你必须从瑞芯微的私有PyPI源下载。但直接pip install -i https://pypi.rk.com/simple/ rknn-toolkit2也有风险它会尝试安装最新版目前是1.7.0而1.7.0要求Python 3.9与我们的Python 3.8.10不兼容。所以必须指定版本号并手动下载whl包进行离线安装这是最稳妥的方式# 创建临时目录存放whl mkdir -p /tmp/rknn-wheels cd /tmp/rknn-wheels # 使用curl下载指定版本的whlRKNN-Toolkit2 1.6.0 for Python 3.8 curl -O https://pypi.rk.com/packages/rknn_toolkit2-1.6.0-cp38-cp38-manylinux2014_x86_64.whl # 验证下载完整性官方提供SHA256必须核对 echo a1b2c3d4e5f6... rknn_toolkit2-1.6.0-cp38-cp38-manylinux2014_x86_64.whl | sha256sum -c # 安装whl包注意必须用pip install xxx.whl不能用pip install . pip install rknn_toolkit2-1.6.0-cp38-cp38-manylinux2014_x86_64.whl这里的关键细节cp38-cp38表示CPython 3.8manylinux2014_x86_64表示它兼容Ubuntu 18.04的glibc 2.17。如果你用的是ARM64如RK3588开发板要下载aarch64版本。sha256sum -c是强制步骤。瑞芯微官网会公布每个whl包的SHA256值下载后必须校验。我遇到过一次网络中断导致whl包损坏pip install看似成功但import rknn_toolkit2时ImportError: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found——因为损坏的包里librknnrt.so链接了高版本glibc而Ubuntu 20.04的glibc是2.31但libm.so.6的符号版本不匹配。校验能100%避免这种隐形炸弹。安装完成后检查是否真正在site-packages里ls -l $VIRTUAL_ENV/lib/python3.8/site-packages/rknn_toolkit2/ # 应该看到 lib/、api/、utils/ 等目录且 lib/ 下有 librknnrt.so ls -l $VIRTUAL_ENV/lib/python3.8/site-packages/rknn_toolkit2/lib/ # 输出应包含 librknnrt.so, libonnxruntime.so, libopencv_core.so 等如果lib/目录为空说明whl包没解压成功立刻重下重装。这是后续所有失败的根源。3. 动态库生死线LD_LIBRARY_PATH配置与系统依赖补全即使你完美执行了前两步import rknn_toolkit2仍可能报错ImportError: libglib-2.0.so.0: cannot open shared object file或libharfbuzz.so.0: cannot open shared object file。这不是Python包的问题而是RKNN-Toolkit2的C核心库librknnrt.so在加载时需要链接一系列Linux系统级共享库。这些库在Ubuntu 20.04的最小化安装中并不默认存在但RKNN-Toolkit2的whl包又没把它们打包进去体积太大所以必须由你手动安装并告知动态链接器去哪里找。3.1 诊断缺失的系统库用ldd和readelf精准定位不要盲目apt install一堆包。先用ldd精准扫描librknnrt.so依赖# 进入你的venv source /opt/rknn-env/bin/activate # 找到librknnrt.so的绝对路径 RKNN_LIB_PATH$(python -c import rknn_toolkit2; print(rknn_toolkit2.__file__.replace(__init__.py, lib/librknnrt.so))) echo $RKNN_LIB_PATH # 扫描依赖 ldd $RKNN_LIB_PATH | grep not found在我的Ubuntu 20.04标准桌面版上输出通常是libglib-2.0.so.0 not found libharfbuzz.so.0 not found libfreetype.so.6 not found libpng16.so.16 not found libjpeg.so.8 not found这说明librknnrt.so需要GTK图形栈的基础库。但注意libglib-2.0.so.0不是glib2.0-dev开发头文件而是libglib2.0-0运行时库。apt install glib2.0-dev不会解决not found问题反而可能引入冲突版本。正确的做法是安装对应的-0后缀的运行时包# 一次性安装所有缺失的运行时库 sudo apt update sudo apt install libglib2.0-0 libharfbuzz0b libfreetype6 libpng16-16 libjpeg-turbo8 -y安装后再次ldd $RKNN_LIB_PATH | grep not found应该为空。但这还不够。ldd只显示直接依赖librknnrt.so可能还依赖这些库的间接依赖。为了保险我们用readelf看它到底需要哪些SONAMEreadelf -d $RKNN_LIB_PATH | grep NEEDED输出会列出所有NEEDED的库名如libglib-2.0.so.0、libpthread.so.0等。libpthread.so.0是glibc自带的不用管但libglib-2.0.so.0必须存在。apt install libglib2.0-0后用find /usr -name libglib-2.0.so.0*确认文件存在通常在/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0。3.2 设置LD_LIBRARY_PATH让链接器找到家即使系统库已安装librknnrt.so还是可能找不到它们因为Python进程启动时动态链接器ld.so的搜索路径不包含/usr/lib/x86_64-linux-gnu/这是Ubuntu 20.04存放这些库的默认位置。你需要显式告诉它# 将系统库路径加入LD_LIBRARY_PATH export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 同时必须把RKNN-Toolkit2自己的lib目录也加进去 export LD_LIBRARY_PATH$VIRTUAL_ENV/lib/python3.8/site-packages/rknn_toolkit2/lib:$LD_LIBRARY_PATH # 验证设置 echo $LD_LIBRARY_PATH # 应该包含 /usr/lib/x86_64-linux-gnu 和 /opt/rknn-env/.../rknn_toolkit2/lib关键警告LD_LIBRARY_PATH必须在import rknn_toolkit2之前设置。如果你在Python脚本里用os.environ[LD_LIBRARY_PATH] ...已经晚了——Python解释器启动时ld.so已经完成了库搜索。必须在shell层面设置然后启动Python。这也是为什么很多教程让你写一个run.sh脚本里面先export再python test.py。在PyCharm里你需要在Run Configuration-Environment variables里添加这两行。3.3 验证动态链接用ldd -r检查符号解析ldd只检查库文件是否存在ldd -r则检查库内所有符号是否能被正确解析。这才是最终审判# 对librknnrt.so做符号解析检查 ldd -r $RKNN_LIB_PATH如果输出里有undefined symbol比如undefined symbol: g_malloc (./librknnrt.so)说明libglib-2.0.so.0虽然存在但它的g_malloc符号版本不匹配。这时你需要升级libglib2.0-0到更高版本或降级RKNN-Toolkit2。我遇到过一次Ubuntu 20.04的libglib2.0-0是2.64.6而RKNN-Toolkit2 1.6.0编译时链接的是2.66.0g_malloc的符号版本变了。解决方案是sudo apt install libglib2.0-02.66.8-1~ubuntu20.04.1从Ubuntu 20.04.3的源里获取。这很麻烦但比重装系统强。所以强烈建议你在安装RKNN-Toolkit2前先sudo apt upgrade把系统更新到最新状态避免这种低级版本冲突。4. 三分钟验证从Hello World到真实模型转换的全流程实操现在环境搭好了库也链接通了终于可以进入“三分钟解决”的高潮部分——验证。这里的“三分钟”指的是从执行第一条验证命令到看到成功输出的时间不包括环境搭建。验证分三层基础导入、API可用性、真实模型转换。跳过任何一层都不能算真正成功。4.1 第一分钟基础导入与版本确认激活你的环境设置好LD_LIBRARY_PATH然后执行最简测试source /opt/rknn-env/bin/activate export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:$VIRTUAL_ENV/lib/python3.8/site-packages/rknn_toolkit2/lib:$LD_LIBRARY_PATH python -c import rknn_toolkit2; print(RKNN-Toolkit2 imported successfully); print(Version:, rknn_toolkit2.__version__)如果输出RKNN-Toolkit2 imported successfully Version: 1.6.0恭喜第一分钟达成。这证明Python能加载模块librknnrt.so能被dlopen所有系统依赖都到位。如果这里失败回头检查LD_LIBRARY_PATH和ldd结果。4.2 第二分钟API初始化与设备探测导入成功只是开始RKNN-Toolkit2的核心是RKNN()类。它初始化时会尝试加载NPU驱动即使你只是做模型转换不部署到板子上它也要探测驱动状态。在PC上它会模拟一个“仿真NPU”但这个过程会触发更多底层检查# test_init.py from rknn.api import RKNN # 创建RKNN实例 rknn RKNN() # 初始化这一步会加载librknnrt.so并探测NPU ret rknn.init_runtime() if ret ! 0: print(Init runtime failed!) exit(ret) else: print(Init runtime success!) # 打印NPU信息仿真模式下会显示CPU print(rknn.get_board_info())运行python test_init.py。如果输出Init runtime success! {board: simulator, chip: rk3399, core_num: 1}第二分钟达成。board: simulator表示它在PC上用CPU模拟NPU行为这是完全正常的。ret 0才是关键非零值意味着驱动加载失败或权限问题比如你没加sudo但仿真模式不需要sudo。4.3 第三分钟真实模型转换与量化验证真正的考验是转换一个真实模型。我们用最简单的mobilenet_v1ONNX格式来测试。RKNN-Toolkit2的转换流程是load-build-export_rknn。build步骤会执行量化INT8这是NPU部署的关键# test_mobilenet.py import numpy as np from rknn.api import RKNN # 创建RKNN实例 rknn RKNN() # 配置关键必须指定target_platform否则build失败 rknn.config( target_platformrk3399, # 即使是仿真也要指定目标芯片 mean_values[[127.5, 127.5, 127.5]], # 输入均值 std_values[[127.5, 127.5, 127.5]], # 输入标准差 quantized_methodchannel, # 量化方法 quantized_algorithmmmse, # 量化算法 ) # 加载ONNX模型你需要提前下载mobilenet_v1.onnx print(-- Loading model) ret rknn.load_onnx(model./mobilenet_v1.onnx) if ret ! 0: print(Load model failed!) exit(ret) # 构建执行量化 print(-- Building model) ret rknn.build(do_quantizationTrue, dataset./dataset.txt) if ret ! 0: print(Build model failed!) exit(ret) # 导出RKNN模型 print(-- Export RKNN model) ret rknn.export_rknn(./mobilenet_v1.rknn) if ret ! 0: print(Export model failed!) exit(ret) print(Done! RKNN model exported to ./mobilenet_v1.rknn)dataset.txt是一个文本文件每行一个图片路径用于校准量化内容类似./images/cat.jpg ./images/dog.jpg ./images/bird.jpg运行python test_mobilenet.py。如果看到-- Loading model -- Building model -- Export RKNN model Done! RKNN model exported to ./mobilenet_v1.rknn第三分钟达成你不仅导入了模块还完成了端到端的模型转换流程。此时生成的mobilenet_v1.rknn文件可以直接拷贝到RK3566开发板上用rknn_api加载运行。实操心得rknn.build()是最容易失败的环节。常见错误RuntimeError: Failed to run calibration原因通常是dataset.txt里的图片路径不对或图片尺寸不符合模型输入mobilenet_v1需要224x224。我的技巧是先用cv2.imread读取一张图print(img.shape)确认是(224, 224, 3)再确保dataset.txt里路径是相对test_mobilenet.py的绝对路径。另外do_quantizationTrue必须配合dataset.txt否则会报dataset is required for quantization。5. VS Code/PyCharm终极配置让IDE成为你的RKNN开发加速器在终端里验证成功只是万里长征第一步。真正的生产力是在VS Code或PyCharm里像写普通Python一样开发RKNN应用。但IDE有自己的Python解释器管理和环境变量机制不配置好你就会陷入“终端能跑IDE报错”的怪圈。5.1 VS Code配置settings.json与launch.json双保险VS Code的Python扩展默认使用系统Python不会自动继承你的LD_LIBRARY_PATH。你需要在工作区的.vscode/settings.json里强制指定解释器和环境变量{ python.defaultInterpreterPath: /opt/rknn-env/bin/python, python.envFile: ${workspaceFolder}/.env }然后在项目根目录创建.env文件写入所有必需的环境变量LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:/opt/rknn-env/lib/python3.8/site-packages/rknn_toolkit2/lib PYTHONPATH/opt/rknn-env/lib/python3.8/site-packages这样VS Code启动Python进程时会自动加载.envLD_LIBRARY_PATH就生效了。但调试时F5还需要launch.json{ version: 0.2.0, configurations: [ { name: Python: Current File, type: python, request: launch, module: python, args: [-u, ${file}], console: integratedTerminal, justMyCode: true, env: { LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu:/opt/rknn-env/lib/python3.8/site-packages/rknn_toolkit2/lib } } ] }env字段覆盖了.env确保调试时环境变量100%生效。我试过只配settings.json调试时依然ImportError就是因为launch.json的env没设。5.2 PyCharm配置Run Configuration的隐藏开关PyCharm比VS Code更“智能”但也更难搞。它会自动检测venv但LD_LIBRARY_PATH必须在Run Configuration里手动添加Run-Edit Configurations...选中你的Python脚本配置在Environment variables框里点击...按钮添加新变量LD_LIBRARY_PATH值为/usr/lib/x86_64-linux-gnu:/opt/rknn-env/lib/python3.8/site-packages/rknn_toolkit2/lib关键一步勾选Add content roots to PYTHONPATH和Add module paths to PYTHONPATH——这确保PyCharm的代码提示能识别rknn_toolkit2的API。如果不勾选你会看到import rknn_toolkit2有红色波浪线提示Unresolved reference rknn_toolkit2即使运行时成功。勾选后代码提示、跳转、自动补全全部正常。5.3 一键启动脚本告别重复配置每次打开IDE都要手动设置太累。我写了一个start_ide.sh脚本放在项目根目录#!/bin/bash # start_ide.sh export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:/opt/rknn-env/lib/python3.8/site-packages/rknn_toolkit2/lib export PYTHONPATH/opt/rknn-env/lib/python3.8/site-packages # 启动VS Code code . # 或者启动PyCharm # /opt/pycharm/bin/pycharm.sh .给它执行权限chmod x start_ide.sh然后双击运行。它会自动设置好环境变量再启动IDE。这是我每天开工的第一件事三秒钟搞定。6. 常见报错字典与秒级修复指南把“谷歌一小时”变成“看表十秒”安装RKNN-Toolkit2的过程就是和各种报错搏斗的过程。我把过去半年收集的107个真实报错按发生频率和修复难度整理成一张“秒级修复字典”。遇到报错不用谷歌直接查表。报错信息截取关键片段根本原因修复命令一行解决修复耗时ModuleNotFoundError: No module named torchPyTorch未安装或安装了CUDA版pip install torch1.11.0cpu --extra-index-url https://download.pytorch.org/whl/cpu15秒ImportError: libtorch.so: cannot open shared object filePyTorch CPU版未正确安装或版本不匹配pip uninstall torch pip install torch1.11.0cpu --extra-index-url https://download.pytorch.org/whl/cpu20秒ERROR: Could not find a version that satisfies the requirement rknn-toolkit2pip源错误未指定瑞芯微私有源pip install -i https://pypi.rk.com/simple/ rknn-toolkit21.6.010秒ImportError: libglib-2.0.so.0: cannot open shared object file缺少GTK运行时库sudo apt install libglib2.0-0 libharfbuzz0b -y5秒RuntimeError: Failed to run calibrationdataset.txt路径错误或图片尺寸不符head -n 1 dataset.txt python -c import cv2; print(cv2.imread($(head -n1 dataset.txt)).shape)30秒Segmentation fault (core dumped)安装了CUDA版PyTorch或LD_LIBRARY_PATH未设置pip uninstall torch pip install torch1.11.0cpu --extra-index-url https://download.pytorch.org/whl/cpu export LD_LIBRARY_PATH...25秒AttributeError: module torch has no attribute float16PyTorch版本过高1.12.1pip uninstall torch pip install torch1.11.0cpu --extra-index-url https://download.pytorch.org/whl/cpu20秒OSError: [Errno 2] No such file or directory: xxx.rknnexport_rknn()路径写错或目录无写权限mkdir -p ./output rknn.export_rknn(./output/model.rknn)10秒ValueError: Unsupported model formatload_onnx()传入了非ONNX文件或ONNX版本过新python -c import onnx; print(onnx.__version__)确保1.1215秒PermissionError: [Errno 13] Permission deniedlibrknnrt.so所在目录权限不足sudo chmod 755 $VIRTUAL_ENV/lib/python3.8/site-packages/rknn_toolkit2/lib/5秒这张表的精髓在于每个修复命令都是可复制粘贴的完整命令不依赖上下文不假设你已知任何前置条件。比如Segmentation fault网上教程常写“检查CUDA
返回列表