【发布时间】:2020-03-31 08:00:25
【问题描述】:
我正在测试一个小的 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
【问题讨论】:
标签: python sqlalchemy mysql-python