先报系统环境,CentOS7 + Python2.7
使用pip install MySQL-python 安装,使用报错如下:
ImportError: /workdata/venv/lib/python2.7/site-packages/_mysql.so: undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE
根据网上各种资料,尝试各种方案未果。看到一篇英文提示,但当时未能理解。
记录下自己的一次经历,希望帮助到遇到相同问题的人。
第一步:从官网下载源文件
wget https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip
第二步:解压
unzip MySQL-python-1.2.5.zip && cd MySQL-python-1.2.5
第三步:python build
python setup.py build
第四步:重编译
g++ -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib64/mysql -L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl -lpython2.7 -o build/lib.linux-x86_64-2.7/_mysql.so
最关键的一步,原本是用gcc编译,改用g++编译
第五步:安装
python setup.py install
完美解决