到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
最后重启一下,问题解决。