欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

安装蓝鲸时 MySQLdb 引发的错误

最编程 2024-04-25 09:48:42
...

环境,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

注意观察报错路径,如果是虚拟环境中的,需要先进入到虚拟环境中,然后进行安装。

完成上面步骤后,导入成功。

推荐阅读