1. 程式人生 > >Python3 報錯 Library not loaded: libmysqlclient.20.dylib

Python3 報錯 Library not loaded: libmysqlclient.20.dylib

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-36
m-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