最近在做一些国产化适配的工作,让自己的系统能跑在申威架构的CPU上。这几年国产CPU如雨后春笋一般涌现出来,感慨一下,放我刚工作的那几年真是想都不敢想。
申威架构的CPU与ARM架构的CPU不同,更加小众,国内也就UOS和Kylin对其有支持。客户提供的操作系统是Kylin V10的SW_64版本,本文就记录下在这个架构CPU+Kylin V10环境下装Pandas遇到的问题。
创建venv
Kylin V10自带的python3版本是3.7.4,先创建个venv:
1 | python3 -m venv --copies knktc-env |
安装numpy
下意识地直接用pip来安装numpy:
1 | pip install numpy |
一顿输出后,报错了:
error: #error Unknown CPU, please report this to numpy maintainers with information about your platform (OS, CPU and compiler)
果然有够小众的,识别不出来这个CPU,所以编译无法进行。
网上查了半天,在UOS的论坛上发现有人讨论过,说无法用pip来编译,只能下载UOS预编译好的包。然后在Kylin这个系统上也搜索了下,果然有:
1 | yum search numpy |
于是先装下这个系统厂商提供的包:
1 | yum install python3-numpy |
装好后需要手动拷贝下,把装到系统目录中的numpy给拷到venv中:
1 | cp -r /usr/lib/python3.7/site-packages/numpy* knktc-env/lib/python3.7/site-packages |
尝试看下版本:
1 | >>> import numpy |
好了,先把numpy的问题给解决了。
安装Pandas
要安装Pandas的话,这一步只好使用源码来编译了。
先把依赖给装下:
1 | pip install setuptools --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple |
然后去以下地址下载源码包:
https://github.com/pandas-dev/pandas/releases
我们还在用1.1.5版本,就用这个地址来下载:
https://github.com/pandas-dev/pandas/releases/download/v1.1.5/pandas-1.1.5.tar.gz
下载后解压,随后进入到目录用最传统的方式安装即可:
1 | cd pandas-1.1.5/ |
注意,这个过程有点漫长,建议开个screen来进行编译安装。
虽然过程漫长,但居然没啥报错地就完成了。
最后再试试panda的版本:
1 | >>> import pandas |
嗯,应该可以了。