使用 sqlalchemy 创建 sql 引擎时出错 - 找不到图像

Error while creating sql engine using sqlalchemy - image not found

我正在测试一个小 python 代码 当我尝试创建一个与 MySQLDB 连接的引擎时,我遇到了以下错误:

声明:

engine = create_engine(connection_url, echo=False,server_side_cursors=True,execution_options=dict(stream_results=True),encoding="utf-8")

错误是:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-7-da54be46d1c6> in <module>
----> 1 engine = create_engine(connection_url, echo=False,server_side_cursors=True,execution_options=dict(stream_results=True),encoding="utf-8")

~/anaconda3/envs/venv_merge/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py in create_engine(*args, **kwargs)
    477     strategy = kwargs.pop("strategy", default_strategy)
    478     strategy = strategies.strategies[strategy]
--> 479     return strategy.create(*args, **kwargs)
    480 
    481 

~/anaconda3/envs/venv_merge/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py in create(self, name_or_url, **kwargs)
     85                 if k in kwargs:
     86                     dbapi_args[k] = pop_kwarg(k)
---> 87             dbapi = dialect_cls.dbapi(**dbapi_args)
     88 
     89         dialect_args["dbapi"] = dbapi

~/anaconda3/envs/venv_merge/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py in dbapi(cls)
    116     @classmethod
    117     def dbapi(cls):
--> 118         return __import__("MySQLdb")
    119 
    120     def on_connect(self):

~/anaconda3/envs/venv_merge/lib/python3.7/site-packages/MySQLdb/__init__.py in <module>
     16 from MySQLdb.release import __version__, version_info, __author__
     17 
---> 18 from . import _mysql
     19 
     20 if version_info != _mysql.version_info:

ImportError: dlopen(/Users/my.user/anaconda3/envs/venv_merge/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib
  Referenced from: /Users/my.user/anaconda3/envs/venv_merge/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
  Reason: image not found

我相信您使用的是 MacOS,您发布的错误是由于 MySQL 和 MySQLdb 软件包安装不正确造成的。尝试按照以下说明修复 MySQLdb,然后重试:

brew install mysql
brew unlink mysql
brew install mysql-connector-c
sed -i -e 's/libs="$libs -l "/libs="$libs -lmysqlclient -lssl -lcrypto"/g' /usr/local/bin/mysql_config
pip install MySQL-python
brew unlink mysql-connector-c
brew link --overwrite mysql
pip install MySQL-python

如果有帮助请告诉我。