当前位置: 首页 > 后端技术 > Python

解决找不到-lmysqlclient

时间:2023-03-26 13:30:51 Python

好记性不能写不好的问题我不是第一次遇到了,但是每次都去网站找答案,但是找了一圈,发现大部分都解决不了问题。我终于花了一些时间来解决这个问题。问题,所以在python下安装mysqlclient时记录如下错误,安装命令pipinstallmysqlclientcopyingMySQLdb/constants/FLAG.py->build/lib.linux-x86_64-3.6/MySQLdb/constantsrunningbuild_extbuilding'MySQLdb._mysql'扩展创建build/temp.linux-x86_64-3.6创建build/temp.linux-x86_64-3.6/MySQLdbgcc-pthread-B/root/anaconda3/envs/py36/compiler_compat-Wl,--sysroot=/-Wsign-compare-DNDEBUG-g-fwrapv-O3-Wall-Wstrict-prototypes-fPIC-Dversion_info=(1,4,4,'final',0)-D__version__=1.4.4-I/usr/include/mysql-I/root/anaconda3/envs/py36/include/python3.6m-cMySQLdb/_mysql.c-obuild/temp.linux-x86_64-3.6/MySQLdb/_mysql.o-g-pipe-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=4-m64-fPIC-g-fabi-version=2-fno-omit-frame-pointer-fno-strict-aliasing-DMY_PTHREAD_FASTMUTEX=1MySQLdb/_mysql.c:在函数“_mysql_field_to_python”中:MySQLdb/_mysql.c:1156:5:警告:案例值'245'不在枚举类型'enumenum_field_types'[-Wswitch]案例245://JSON^gcc-pthread-shared-B/root/anaconda3/envs/py36/compiler_compat-L/root/anaconda3/envs/py36/lib-Wl,-rpath=/root/anaconda3/envs/py36/lib-Wl,--no-as-needed-Wl,--sysroot=/build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o-L/usr/lib64-lmysqlclient-lpthread-lm-lrt-ldl-obuild/lib.linux-x86_64-3.6/MySQLdb/_mysql.cpython-36m-x86_64-linux-gnu.so/root/anaconda3/envs/py36/compiler_compat/ld:找不到-lmysqlclientcollect2:error:ldreturned1exitstatuserror:command'gcc'failedwithexitstatus1--------------------------------------mysqlclient的构建轮失败为mysqlclient运行setup.pycleanFailedtobuildmysqlclientInstallingcollectedpackages:sqlparse,django,mysqlclientRunningsetup.pyinstallformysqlclient...错误命令/root/anaconda3/envs的完整输出/py36/bin/python-u-c"importsetuptools,tokenize;__file__='/tmp/pip-install-yp2ohy67/mysqlclient/setup.py';f=getattr(tokenize,'open',open)(__file__);code=f.read().replace('\r\n','\n');f.close();exec(compile(code,__file__,'exec'))"install--record/tmp/pip-record-l7utm1yx/install-record.txt--single-version-externally-managed--compile:运行安装运行构建运行build_py创建构建创建构建/lib.linux-x86_64-3.6创建构建/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/__init__.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/_exceptions.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/compat.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/connections.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/converters.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/cursors.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/release.py->build/lib.linux-x86_64-3.6/MySQLdb复制MySQLdb/times.py->build/lib.linux-x86_64-3.6/MySQLdb创建build/lib.linux-x86_64-3.6/MySQLdb/常量复制MySQLdb/constants/__init__.py->build/lib.linux-x86_64-3.6/MySQLdb/constants复制MySQLdb/constants/CLIENT.py->build/lib.linux-x86_64-3.6/MySQLdb/constants复制MySQLdb/constants/CR.py->build/lib.linux-x86_64-3.6/MySQLdb/constants复制MySQLdb/constants/ER.py->build/lib.linux-x86_64-3.6/MySQLdb/constants复制MySQLdb/constants/FIELD_TYPE。py->build/lib.linux-x86_64-3.6/MySQLdb/constants复制MySQLdb/constants/FLAG.py->build/lib.linux-x86_64-3.6/MySQLdb/constants运行build_extbuilding'MySQLdb._mysql'extensioncreatingbuild/temp.linux-x86_64-3.6创建build/temp.linux-x86_64-3.6/MySQLdbgcc-pthread-B/root/anaconda3/envs/py36/compiler_compat-Wl,--sysroot=/-Wsign-compare-DNDEBUG-g-fwrapv-O3-Wall-Wstrict-prototypes-fPIC-Dversion_info=(1,4,4,'final',0)-D__version__=1.4.4-I/usr/include/mysql-I/root/anaconda3/envs/py36/include/python3.6m-cMySQLdb/_mysql.c-obuild/temp.linux-x86_64-3.6/MySQLdb/_mysql.o-g-pipe-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=4-m64-fPIC-g-fabi-version=2-fno-omit-frame-pointer-fno-strict-aliasing-DMY_PTHREAD_FASTMUTEX=1MySQLdb/_mysql.c:在function'_mysql_field_to_python':MySQLdb/_mysql.c:1156:5:warning:casevalue'245'notinenumeratedtype'enumenum_field_types'[-Wswitch]案例245://JSON^gcc-pthread-shared-B/root/anaconda3/envs/py36/compiler_compat-L/root/anaconda3/envs/py36/lib-Wl,-rpath=/root/anaconda3/envs/py36/lib-Wl,--no-as-needed-Wl,--sysroot=/build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o-L/usr/lib64-lmysqlclient-lpthread-lm-lrt-ldl-obuild/lib.linux-x86_64-3.6/MySQLdb/_mysql.cpython-36m-x86_64-linux-gnu.so/root/anaconda3/envs/py36/compiler_compat/ld:找不到-lmysqlclientcollect2:error:ldreturned1exitstatuserror:command'gcc'failedwithexitstatus1----------------------------------------命令“/root/anaconda3/envs/py36/bin/python-u-c"importsetuptools,tokenize;__file__='/tmp/pip-install-yp2ohy67/mysqlclient/setup.py';f=getattr(tokenize,'open',open)(__file__);code=f.read().replace('\r\n','\n');f.close();exec(compile(code,__file__,'exec'))"install--record/tmp/pip-record-l7utm1yx/install-record.txt--single-version-externally-managed--compile"failedwitherrorcode1in/tmp/pip-install-yp2ohy67/mysqlclient/我们可以看到有很多错误报告,所以哪个行具体是什么导致了这个问题?有一次以为是gcc相关,结果依赖所有安装,还是报错,然后发现这一行cannotfind-lmysqlclient。网上有很多类似的问题,然后按顺序查了一下。最后的问题是lmysqlclient文件其实对应的是mysqlclient.so文件,然后我也执行了下面的命令$locatelibmysqlclient.so如果提示locate不存在,请执行下面的语句安装$sudoyuminstallmlocate$sudoupdatedb并输出结果让我明白/usr/lib64/libmysqlclient.so.12/usr/lib64/libmysqlclient.so.12.0.0/usr/lib64/libmysqlclient.so.14/usr/lib64/libmysqlclient.so.14.0.0/usr/lib64/libmysqlclient.so.15/usr/lib64/libmysqlclient.so.15.0.0/usr/lib64/libmysqlclient.so.16/usr/lib64/libmysqlclient.so.16.0.0系统有这么多相关的libmysqlclient文件,但是没有libmysqlclient.so文件,所以很容易解决问题,做个软连接就OK$ln-s/usr/lib64/libmysqlclient.so.16/usr/lib64/libmysqlclient.so然后执行pipinstallmysqlclient安装,终于安装成功

最新推荐
猜你喜欢