Python 加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享对象文件:没有此类文件或目录

Python 加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享对象文件:没有此类文件或目录,python,mysql,django,Python,Mysql,Django,我有一个正在运行的django项目,出于某些原因,我不得不删除当前的mysql版本,并在我的机器上安装一个不同的mysql版本 但现在,当我尝试运行此程序时,得到如下错误: raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20:

我有一个正在运行的django项目,出于某些原因,我不得不删除当前的mysql版本,并在我的机器上安装一个不同的mysql版本

但现在,当我尝试运行此程序时,得到如下错误:

raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory

重新安装c共享库:

pip uninstall mysql-python
pip install mysql-python

使用以下命令:

pip uninstall mysql-python
pip install mysql-python

在我的例子中,它可以工作,因为它从符合的文件中搜索。

我的问题是mysql环境没有完全设置好。我需要卸载MySQL-python;安装libmysqlclient-dev;重新安装MySQL-python以纠正此问题

因此,解决方案也是:

  • sudopip卸载MySQL-python(从您选择的包管理器中卸载)
  • sudo apt get安装libmysqlclient dev

  • sudopip安装MySQL-python

**我还应该提到,我在pip安装中使用了--no cache dir选项来直接命中PYPI,这有助于发现以下内容:

sh: 1: mysql_config: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup.py", line 17, in <module>
    metadata, options = get_config()
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 25, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
sh:1:mysql\u配置:未找到
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup.py”,第17行,在
元数据,options=get_config()
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup\u posix.py”,第43行,在get\u config中
libs=mysql\u config(“libs\u r”)
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup\u posix.py”,第25行,在mysql\u config中
raise环境错误(“%s未找到”%)(mysql\u config.path,)
环境错误:未找到mysql\u配置
带我去


使用:mysql 5.7、mysql python 1.2.5、django 1.8.9、ubuntu 16.04,我通过设置以下环境变量解决了相同的问题:

export LD_LIBRARY_PATH=/usr/local/mysql/lib

以防万一
pip卸载
pip安装
不工作,并且您不想将特定路径设置为
ld\u library\u path
,我在vps上做了什么:

cd /usr/local/lib
sudo ln -s /path/to/your/libmysqlclient.so.20

在我的例子中,我的mysql是从linuxbrew安装的(在home中安装是有原因的),所以我必须在那里导航
$home/.linuxbrew/ceral/mysql/5.7.18/lib/libmysqlclient.so.20

在我的例子中,问题是由Ubuntu升级引起的,所以我在
/usr/lib/x86\u 64-linux-gnu
中找不到
libmysqlclient.so.20

解决方案:

  • 检查
    /usr/lib/x86\u 64-linux-gnu
    中的existance
    libmysqlclient.so.XX
    (或类似文件)
  • 从Ubuntu网站下载
    libmysqlclient.so.XX
    (例如)
  • 使用dpkg命令安装lib
    sudo dpkg-i libmysqlclient(…).deb
    sudo-apt-get-Install-f
  • 链接lib:
    ln-s/usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so

  • 我也有同样的问题,我修复了mysqlclient官员之前说的安装:
    sudo apt get install python3 dev default libmysqlclient dev build-essential

    请向询问更多信息和详细信息的用户提供答案。请仔细观察
    --无缓存目录
    选项!这对我很有用!,感谢详细说明如何通过使用:yum whatprovides“libmysqlclient”从输出中找到我向yum询问的路径(在使用ami-linux时),我可以找到包含libmysqlclient.so的库文件夹,并将其添加到我的bash_配置文件导出LD_library_path=/usr/lib64/mysql57Lukasz上的LB_library_路径,我刚刚在这里发布了一个非常类似但稍微简单的答案:……以防你需要再次这样做。