【问题标题】:Error while creating sql engine using sqlalchemy - image not found使用 sqlalchemy 创建 sql 引擎时出错 - 找不到图像
【发布时间】: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


    【解决方案1】:

    我相信您正在使用 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
    

    如果这有帮助,请告诉我。

    【讨论】:

    • 您好 Hussain,感谢您在我尝试按照第一个命令安装 mysql 时的响应我得到这个:错误:/usr/local/opt/mysql 不是有效的小桶
    • 更新后仍然出现同样的错误,但我设法解决了这个问题,虽然仍然觉得这不是修复但解决了现有问题,我只是将丢失的文件复制到 python 正在搜索的路径中对于库: cp -R /usr/local/opt/mysql-client/lib/libmysqlclient.21.dylib /usr/local/opt/mysql/lib/
    猜你喜欢
    • 2015-09-04
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多