树莓派4无法安装TensorFlow 2.3:pip找不到兼容版本原因咨询
你遇到的问题核心原因很明确:TensorFlow 2.3官方并没有提供针对ARM64(aarch64)架构的预编译PyPI包,而且piwheels源也没有编译这个版本的对应轮子,所以pip遍历可用源后找不到匹配的发行版,才会抛出这个错误。
虽然你的Python版本(3.7)和系统架构(64位)都符合TensorFlow 2.3的要求,但官方在2.4版本才正式开始支持ARM64架构的预编译包,2.3版本完全没有官方的ARM64分发版本。
下面给你几个可行的解决方向:
升级到TensorFlow 2.4或更高版本(推荐)
这是最简单的方案,因为从2.4开始官方直接支持ARM64,你可以直接用pip安装对应版本,比如:pip install tensorflow==2.4.0注意选择和Python3.7兼容的版本(TensorFlow 2.4到2.9都支持Python3.7),安装时pip会自动拉取ARM64的预编译轮子。
手动编译TensorFlow 2.3的ARM64版本
如果你必须使用2.3版本,只能自己从源码编译。这个过程比较耗时,需要给树莓派配置足够的交换空间(至少4GB),并安装编译依赖,步骤大概是:- 安装编译所需依赖:
sudo apt-get install build-essential python3-dev python3-pip libopenblas-dev libblas-dev cmake - 安装对应版本的Bazel(TensorFlow2.3要求Bazel 3.1.0)
- 克隆TensorFlow 2.3源码并切换到对应标签:
git clone https://github.com/tensorflow/tensorflow.git && cd tensorflow && git checkout v2.3.0 - 运行配置脚本:
./configure,按照提示完成配置(注意开启ARM64相关选项) - 编译生成轮子:
bazel build --config=opt --config=noaws --config=nohdfs --config=noignite --config=nokafka --config=nonccl //tensorflow/tools/pip_package:build_pip_package - 生成pip安装包:
./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./tensorflow_pkg - 安装本地轮子:
pip install ./tensorflow_pkg/tensorflow-2.3.0-*.whl
- 安装编译所需依赖:
寻找第三方社区编译的轮子
有些社区开发者会分享自己编译的TensorFlow 2.3 ARM64轮子,你可以找可信的资源下载后本地安装,但要注意验证轮子的完整性和安全性,避免安装恶意包。
最后提醒一下:你执行的pip install tensorflow==命令漏掉了具体版本号,正确的命令应该是pip install tensorflow==2.3.0,不过即使补全版本号,因为没有对应轮子还是会报错,所以核心还是版本支持的问题。
内容的提问来源于stack exchange,提问作者UrmLmn




