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

Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory

我有一个正在运行的Django项目,出于某些原因,我必须删除当前的MySQL版本,并在我的计算机中安装不同的MySQL版本。

但是现在,当我试图运行这个程序时,出现了如下错误:

1
2
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

我对相同错误消息的问题是mysql环境不是一直设置的。我需要卸载mysql python;安装libmysqlclient dev;重新安装mysql python以纠正问题。

所以解决办法也是:

  • sudo pip uninstall mysql python(从您选择的包管理器中卸载)
  • sudo apt get安装libmysqlclient dev

  • sudo pip安装mysql python

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

1
2
3
4
5
6
7
8
9
10
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

带我到这里

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


重新安装C共享库:

1
2
pip uninstall mysql-python
pip install mysql-python


使用以下命令:

1
2
pip uninstall mysql-python
pip install mysql-python

在我的例子中,它工作是因为它从编译的文件中进行搜索。


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

1
export LD_LIBRARY_PATH=/usr/local/mysql/lib