1 背景
这个问题是在安装arm机器上编译好的python包tensorflow==2.6.5的wheel文件遇到。
背景是官方tensorflow==2.6.5没有提供arm架构的包,无法使用pip安装,因此需要在arm机器上自己编译wheel文件。而在安装编译好了的wheel文件的时候,pip会安装依赖,包括h5py这个包,pip会编译h5py包,从而导致错误。如下:
2 原因
官方的解释是h5py低版本只能用Cython==0.29.xx版本编译,不能用3.xx.xx版本,否则会导致编译错误。
参考:https://github.com/h5py/h5py/issues/2300
3 解决办法
既然Cython版本不对,那么思路就是编译h5py的时候指定正确Cython版本,刚开始在安装tensorflow之前,先提前安装指定版本的Cython库,发现仍然还有问题,提前安装的Cython不生效。pip在编译安装的时候,会在独立的环境中拉去Cython,也就是