繁体   English   中英

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

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

我有一个正在运行的 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

我遇到相同错误消息的问题是 mysql 环境没有完全设置好。 我需要卸载 MySQL-python; 安装 libmysqlclient-dev; 重新安装 MySQL-python 以解决问题。

所以修复也是:

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

  • 须藤 pip 安装 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

带我到这里

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

使用以下命令:

pip uninstall mysql-python
pip install mysql-python

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

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

export LD_LIBRARY_PATH=/usr/local/mysql/lib

在我的情况下,问题是由 Ubuntu 升级引起的,所以我在/usr/lib/x86_64-linux-gnu找不到libmysqlclient.so.20

解决方案:

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

以防万一pip uninstallpip install不起作用,并且您不想将特定路径设置为ld_library_path ,我在我的 vps 上做了什么:

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

在我的情况下,我的 mysql 是从 linuxbrew 安装的(有一些理由安装在家里),所以我不得不导航到$HOME/.linuxbrew/Cellar/mysql/5.7.18/lib/libmysqlclient.so.20

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM