Mac系统安装mysqlclient

PyPi官网下载mysqlclient安装包,下载好之后解压,进入解压后的目录激活环境:

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" python setup.py install

安装好之后执行下面命令报错如下:

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/xxx/.local/share/virtualenvs/MyDjango-c9TXLMy3/lib/python3.6/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: dlopen(/Users/xxx/.local/share/virtualenvs/MyDjango-c9TXLMy3/lib/python3.6/site-packages/MySQLdb/_mysql.cpython-36m-darwin.so, 2): Library not loaded: libcrypto.1.0.0.dylib

注意这个错误:Library not loaded: libcrypto.1.0.0.dylib

确认一下有没有安装openssl

brew list openssl

没有的话就安装一下

brew install openssl

有的话查看并进入安装目录:

which openssl
cd /usr/local/opt/openssl@1.1/lib

把对应的几个包复制到/usr/lib/路径下:

sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib

如果报错:

operation not permitted

那么需要重启电脑,同时按住command+R进入保护模式,进入系统之后在屏幕左上方有个工具栏,选择终端,打开之后执行如下命令:

csrutil disable

执行之后再执行复制命令:

sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib

再报错:

Read-only file system

参考Apple官网社区,执行如下命令:

sudo mount -uw /

然后给相应的目录授权(当前目录还是在/usr/local/opt/openssl@1.1/lib下):

sudo chown -R 777 ./*

完成之后,再复制一下:

sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib

最后,恢复系统保护机制,重启电脑,按住command+R进入保护模式,,进入系统之后在屏幕左上方有个工具栏,选择终端,打开之后执行如下命令::

csrutil enable

最后重启一下,问题解决。

原文地址:https://www.cnblogs.com/liuhuan086/p/12066808.html