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

时间:2015-12-18 04:53:20

标签: 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: cannot open shared object file: No such file or directory

7 个答案:

答案 0 :(得分:17)

我的问题是同样的错误信息是mysql环境并非一直设置。我需要卸载MySQL-python;安装libmysqlclient-dev;重新安装MySQL-python来纠正这个问题。

所以修复也是如此:

  • sudo pip卸载MySQL-python(从您选择的软件包管理器中卸载)
  • sudo apt-get install libmysqlclient-dev

  • sudo pip install MySQL-python

**我还应该提一下,我使用pip install的--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

并引导我here

使用:mysql 5.7,mysql-python 1.2.5,django 1.8.9,ubuntu 16.04

答案 1 :(得分:16)

重新安装c共享库:

pip uninstall mysql-python
pip install mysql-python

答案 2 :(得分:2)

使用以下命令:

pip uninstall mysql-python
pip install mysql-python

在我的情况下,它起作用,因为它从编译的文件中搜索。

答案 3 :(得分:1)

我通过设置以下环境变量确实解决了同样的问题:

export LD_LIBRARY_PATH=/usr/local/mysql/lib

答案 4 :(得分:1)

就我而言,问题是由Ubuntu升级引起的,因此在libmysqlclient.so.20中找不到/usr/lib/x86_64-linux-gnu

解决方案:

  1. 检查libmysqlclient.so.XX(或类似名称)中的存在/usr/lib/x86_64-linux-gnu
  2. 从Ubuntu网站(例如link for v20)下载libmysqlclient.so.XX
  3. 使用dpkg命令sudo dpkg -i libmysqlclient(...).debsudo apt-get install -f安装lib
  4. 链接库:ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so

答案 5 :(得分:0)

以防万一pip uninstallpip install无法正常工作,并且您不想为ld_library_path设置特定路径的情况,这就是我在vps上所做的事情:

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

在我的情况下,我的mysql是从linuxbrew安装的(有一些原因要安装在home内),所以我不得不在那儿导航$HOME/.linuxbrew/Cellar/mysql/5.7.18/lib/libmysqlclient.so.20

答案 6 :(得分:0)

我遇到了同样的问题,我修复了 mysqlclient 官方 doc 之前说要安装的内容: sudo apt-get install python3-dev default-libmysqlclient-dev build-essential