Python3 报错 Library not loaded: libmysqlclient.20.dylib

本文解决了一个Python3在尝试连接MySQL数据库时出现的错误,错误原因是找不到libmysqlclient.20.dylib动态库。通过创建软链接从21版本回指到20版本解决了问题。

Python3 报错信息

Traceback (most recent call last):
  File "send.py", line 5, in <module>
    from db import *
  File "/Users/ko/projects/php/edm/db.py", line 7, in <module>
    import MySQLdb
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so
  Reason: image not found

原因分析

昨天之行了一次 brew upgrade 导致 mysql、php 全部都错误。进入 /usr/local/opt/mysql/lib/ ,查看文件存在:

~$ ls -la  /usr/local/opt/mysql/lib/
total 22448
drwxr-xr-x   8 ko  staff      272  6 29 00:42 .
drwxr-xr-x  15 ko  staff      510  9  1 22:02 ..
-rw-r--r--   1 ko  staff  5424044  9  1 22:01 libmysqlclient.21.dylib
-r--r--r--   1 ko  staff  6047688  6 29 00:42 libmysqlclient.a
lrwxr-xr-x   1 ko  staff       23  6 29 00:42 libmysqlclient.dylib -> libmysqlclient.21.dylib
-r--r--r--   1 ko  staff     9624  6 29 00:42 libmysqlservices.a
drwxr-xr-x   3 ko  staff      102  9  1 22:01 pkgconfig
drwxr-xr-x  91 ko  staff     3094  6 29 00:42 plugin

解决方案

链接一个20版本到21

ln -s libmysqlclient.21.dylib libmysqlclient.20.dylib
这个错误提示意味着Python在尝试加载lightgbm库时未能找到名为&#39;@rpath/libomp.dylib&#39;的库文件这可能是由于一些原因引起的,包括: 1. **系统环境问题**:确保你的系统上已经安装了OpenMP库,并且Python和lightgbm都能够访问它 2. **库路径问题**:可能Python在寻找库文件时找不到正确的路径你可以尝试将库文件移动到Python的库路径中,或者在Python中设置正确的库路径 3. **lightgbm版本问题**:某些lightgbm版本可能不包含OpenMP支持,或者需要额外的配置才能使用OpenMP请确保你使用的是支持OpenMP的版本 针对这些可能的原因,下面是一些解决方案: **方法一:确认并安装OpenMP** 1. 在macOS上,你可能需要使用Homebrew或其他包管理器来安装OpenMP ```bash brew install gcc brew install openmp ``` 2. 在Linux上,你可以使用包管理器来安装OpenMP(例如,对于Ubuntu,可以使用`apt-get install libomp-dev`) 3. 在Windows上,OpenMP通常作为默认安装的一部分因此通常不需要额外的安装但是,如果lightgbm需要在Windows上使用OpenMP,请确保安装了相应的Visual C++运行时版本(包含OpenMP支持) **方法二:设置库路径** 如果你已经确认了OpenMP的安装并且仍然遇到问题,那么你可能需要设置库路径以告诉Python去哪里查找库文件在Python中,你可以使用`os`模块来设置库路径例如: ```python import os os.environ["LD_LIBRARY_PATH"] = "/path/to/your/library" ``` 请将上述代码中的`"/path/to/your/library"`替换为实际的库文件路径 **方法三:检查lightgbm版本** 确保你使用的lightgbm版本支持OpenMP,并查阅相关文档以了解如何正确配置它如果上述方法都不能解决问题,你可能需要查看lightgbm的官方文档或寻求其社区的帮助 希望这些解决方案能帮助你解决问题!如果还有其他疑问或需要进一步的帮助,请随时提问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值