环境,CentOS7.5 + Python2.7.5
导入 MySQLdb时报如下错误
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
或者
pip download MySQL-python
第二步:解压
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
错误如下。
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: /data/bkce/.envs/dataapi/lib/python2.7/site-packages/_mysql.so: undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE
[10.248.56.249]20190311-105751 16 init bkdata trt table failed.
/data/bkce/.envs/dataapi/lib/python2.7/site-packages/
虚拟环境时dataapi
注意观察报错路径,如果是虚拟环境中的,需要先进入到虚拟环境中,然后进行安装。
完成上面步骤后,导入成功。