问题解决:from . import _mysql ImportError: Library not loaded: @rpath/libmysqlclient.21.dylib

今天用python连接mysql时报错:

  File "/Users/zhbink/Documents/GitHub/Scrapy/ArticleSpider/ArticleSpider/pipelines.py", line 5, in <module>
    import MySQLdb
  File "/Users/zhbink/opt/anaconda3/envs/django/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: dlopen(/Users/zhbink/opt/anaconda3/envs/django/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
  Referenced from: /Users/zhbink/opt/anaconda3/envs/django/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
  Reason: image not found

使用的库是MySQLdb,遂考虑到可能是我使用的这个python版本与库不兼容。
查阅资料后发现MySQLdb不兼容py3.5以后的版本。


解决办法:
使用pymysql代替MySQLdb

步骤:

  1. 安装pymysql:pip install pymysql

  2. 打开项目__init__.py,或直接在当前py文件最开头添加如下:

import pymysql 
pymysql.install_as_MySQLdb()

在这里插入图片描述

发布了673 篇原创文章 · 获赞 644 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zhaohaibo_/article/details/104452033