import MySQLdb时遇到了ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file

本文详细介绍了在Linux环境下,运行Python程序时遇到的mysqldb导入异常问题:ImportError: libmysqlclient_r.so.16找不到共享对象文件。提供了解决方案,包括查找libmysqlclient_r.so.16的位置并创建软链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux上运行程序的时候,发现有这个异常:

Traceback (most recent call last):
  File "rcctestsuite.py", line 13, in <module>
    from validator.db.processor import Processor as DBProcessor
  File "/usr/RAT/src/validator/db/processor.py", line 9, in <module>
    from syniverse.dboperate import DBOperateAction
  File "/usr/RAT/src/syniverse/dboperate.py", line 4, in <module>
    import MySQLdb,time,traceback,logging
  File "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>
    
  File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.linux-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

解决如下:

1. 通过命令   find / -name libmysqlclient_r.so.16,查找libmysqlclient_r.so.16 在什么地方,一般是在/usr/lib64/mysql/下面

2. 做一个链接到/usr/lib64 下: ln -s /usr/lib64/mysql/libmysqlclient_r.so.16 /usr/lib64/libmysqlclient_r.so.16

问题解决。

出现这个问题的原因是mysqldb无法找到libmysqlclient_r.so.16,所以就给它一个。这个文件是mysqldb用来链接到mysql数据库的。

(django) [root@iZ7vhr6bkd1v9kZ django]# python manage.py runserver Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 15, in <module> import MySQLdb as Database File "/root/.virtualenvs/django/lib/python3.8/site-packages/MySQLdb/__init__.py", line 17, in <module> from . import _mysql ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/local/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run autoreload.raise_last_exception() File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception raise _exception[1] File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/core/management/__init__.py", line 394, in execute autoreload.check_errors(django.setup)() File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/apps/registry.py", line 116, in populate app_config.import_models() File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/apps/config.py", line 269, in import_models self.models_module = import_module(models_module_name) File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/models/base.py", line 371, in add_to_class value.contribute_to_class(cls, name) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/models/options.py", line 243, in contribute_to_class self.db_table, connection.ops.max_name_length() File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/utils/connection.py", line 15, in __getattr__ return getattr(self._connections[self._alias], item) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/utils/connection.py", line 62, in __getitem__ conn = self.create_connection(alias) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/utils.py", line 193, in create_connection backend = load_backend(db["ENGINE"]) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/utils.py", line 113, in load_backend return import_module("%s.base" % backend_name) File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/root/.virtualenvs/django/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 17, in <module> raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?
最新发布
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值