Bootstrap

编译安装PaddleClas@openKylin(失败,安装好后报错缺scikit-learn)

编译安装

前置需求:

手工安装swig和faiss-cpu

pip install swig

pip install faiss-cpu

小技巧,pip编译安装的时候,可以加上--jobs=64来多核编译。

注意先升级pip版本:pip install pip -U

pip3 install faiss-cpu --config-settings="--jobs=64"

--global-option="--jobs=4"

还有一种方法是设置环境变量:export MAKEFLAGS="-j64"

但是感觉效果不是太明显

最终apt install swig

安装PaddleClas

下载PaddleClas源代码:

git clone https://github.com/PaddlePaddle/PaddleClas

编译安装

cd PaddleClas && python setup.py install

这里一直过不去,看issue,发现只有python3.7才能安装faiss-cpu ,解决的方法是去掉fass-cpu的包依赖再编译安装

修改requirements.txt 文件,去掉faiss-cpu,然后再执行

pip install -r requirements.txt  -i https://mirror.baidu.com/pypi/simple
python3 setup.py install 

最终去掉了faiss-cpu matplotlib scikit-learn 之后编译成功。

但是执行的时候报错缺scikit-learn

先搁置

调试

编译安装报错

Best match: faiss-cpu 1.8.0
Processing faiss-cpu-1.8.0.tar.gz
Writing /tmp/easy_install-1s0d811q/faiss-cpu-1.8.0/setup.cfg
Running faiss-cpu-1.8.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-1s0d811q/faiss-cpu-1.8.0/egg-dist-tmp-9rxoiq57
/usr/local/lib/python3.8/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
error: Setup script exited with error: command 'swig' failed: No such file or directory

尝试手工安装swig

pip install swig

速度非常慢,大约10分钟吧。

apt install swig之后和pip install swig之后,还是报错

报错ModuleNotFoundError: No module named 'swig'

      building 'faiss._swigfaiss' extension
      swigging faiss/faiss/python/swigfaiss.i to faiss/faiss/python/swigfaiss_wrap.cpp
      swig -python -c++ -Doverride= -doxygen -Ifaiss -I/tmp/pip-build-env-6iratz6b/overlay/lib/python3.8/site-packages/numpy/core/include -Ifaiss -I/usr/local/include -DSWIGWORDSIZE64 -o faiss/faiss/python/swigfaiss_wrap.cpp faiss/faiss/python/swigfaiss.i
      Traceback (most recent call last):
        File "/usr/local/bin/swig", line 5, in <module>
          from swig import swig
      ModuleNotFoundError: No module named 'swig'
      error: command '/usr/local/bin/swig' failed with exit code 1
      [end of output]

先不装fass-cpu了。

提高编译速度

加上这个

export MAX_JOBS=64

安装opencv库失败

先屏蔽

安装scipy失败

手工apt安装

apt install python3-scipy

安装scikit-learn失败

安装1.0版本试试,还是失败

安装matplotlib失败

先屏蔽

;