编译安装
前置需求:
手工安装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失败
先屏蔽