使用 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
如果有帮助请告诉我。
我正在测试一个小 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
如果有帮助请告诉我。