移植python包到龍芯(MIPS64EL)平臺

由於有不少python 包是用c編寫的,這樣一來在不同的CPU架構(x86,MIPS64等,python 默認提供的是x86架構的包)上使用時需要重新編譯。目前有兩種方法來處理這個問題。

  1. 使用pip在線安裝,利用pip在線安裝時會自動下載相應的源碼包並編譯的功能
  2. 找到源碼然後手動編譯,一般在https://pypi.org 可以到源碼

使用這兩種方法時都得安裝編譯環境及編譯此包所需的依賴,不然就會出現編譯失敗或安裝失敗的提示。

pip install 安裝時,如果找不到相應的.whl 包,則自動下載源碼之後進行編譯。編譯後的包在~/.cache/pip/wheels目錄下。可以把這些編譯好的.whl 文件複製出來。

pip 安裝時的cahce 目錄可以通過命令來查看。相關參考:https://pip.pypa.io/en/stable/reference/pip_cache/

# pip cache dir
/root/.cache/pip
  1. 使用pip在線安裝
$ pip install  pyarrow
Collecting pyarrow
  Downloading https://files.pythonhosted.org/packages/ed/c9/85d179d5a0575e1b066fb94bfe1e37b6d3ca546b58e75b9d1ca4952320de/pyarrow-0.17.1.tar.gz (2.6MB)
    100% |████████████████████████████████| 2.6MB 146kB/s 
  Installing build dependencies ... done
Requirement already satisfied: numpy>=1.14 in /home/loongson-gd/.local/lib/python3.7/site-packages (from pyarrow) (1.18.5)
Building wheels for collected packages: pyarrow
  Running setup.py bdist_wheel for pyarrow ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ekyp7jb9/pyarrow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-ca7vzlm6 --python-tag cp37:
  running bdist_wheel
  1. 源碼編譯
$ cd opencv-python-34
$ python3 setup.py bdist_wheel
Collecting numpy==1.14.5
  Using cached https://files.pythonhosted.org/packages/d5/6e/f00492653d0fdf6497a181a1c1d46bbea5a2383e7faf4c8ca6d6f3d2581d/numpy-1.14.5.zip
Building wheels for collected packages: numpy
  1. 提取編譯好的包
    提取編譯好的包到~/wheel目錄腳本如下:
#!/bin/bash
##此目錄用來存放待提取的whl包
mkdir -p  ~/wheel
cd ~/.cache/pip/wheels
for f in `find . -name "*.whl"`
do
	echo $f
	cp $f ~/wheel -rvf
done
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章