哈尔滨快速网站排名,河南建设集团网站,公司网站域名和空间使用费,百度优化大师最近在使用 Django 框架#xff0c;因为升级到4.2版本了#xff0c;对应的本机 Mysql 5.7 就不适用了#xff0c;于是升级到了 Mysql 8.0#xff0c;写好代码之后出现如下错误#xff1a; 仔细分析一下错误的描述#xff1a;
ImportError: dlopen(/Library/Frameworks/P…最近在使用 Django 框架因为升级到4.2版本了对应的本机 Mysql 5.7 就不适用了于是升级到了 Mysql 8.0写好代码之后出现如下错误 仔细分析一下错误的描述
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylibReferenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.soReason: image not found可以看到的是 Library not loaded:, 库文件并未加载库文件地址为/usr/local/mysql/lib/libmysqlclient.20.dylib, 直接在命令行执行
open /usr/local/mysql/lib/得到如下界面
可以看到在 mysql 文件夹下只存在libmysqlclient.21.dylib 文件并不存在libmysqlclient.20.dylib,这既是问题的症结所在了我需要加载的是20文件但是现在只存在21文件然后我们来找一下我系统中dylib到底有哪些使用命令行
sudo find /usr/local -name libmysqlclient.*.dylib找到了如下图 我发现目前只存在我的mysql-8.0.12文件夹下面但是在 Django 框架下没办法去更改加载21文件那么能不能生成一个20文件来内容来使用21文件替代呢正好Mac 电脑下有这种命令
ln -s [目标文件或目录] [符号链接名]ln 是一个在 Unix 和类 Unix 系统包括 macOS 和 Linux中非常常用的命令行工具用于创建链接。
符号链接软连接
符号链接类似于 Windows 中的快捷方式。它是一个特殊类型的文件包含一个文本指针指向另一个文件或目录的路径。
创建符号链接的命令格式为
ln -s [目标文件或目录] [符号链接名]例如如果你想创建一个指向 /usr/local/mysql/lib/libmysqlclient.20.dylib 的符号链接你可以使用
ln -s /usr/local/mysql/lib/libmysqlclient.20.dylib ~/libmysqlclient.20.dylib这个命令会在你的根目录创建一个 libmysqlclient.20.dylib 的符号链接它指向 /usr/local/mysql/lib/libmysqlclient.20.dylib。
硬链接 硬链接直接指向文件系统中的物理位置不像符号链接那样仅仅是路径的引用。每个文件至少有一个硬链接即其本身的文件名添加的每个础链接都可以视为文件的另一个有效名称。硬链接对文件夹是不支持的。(和复制还是有些区别的)
创建硬链接的命令格式为
ln [目标文件] [硬链接名]例如在同一目录下要为 /path/to/file.txt 创建一个硬链接可以使用
ln /path/to/file.txt /path/to/new_link.txt那我为了解决这个问题我只需要将我的21文件链接到20文件即可
sudo ln -s /usr/local/mysql-8.0.12-macos10.13-x86_64/lib/libmysqlclient.21.dylib
/usr/local/mysql/lib/libmysqlclient.20.dylib执行之后再次查看对应文件夹 可以看到这里多了一个链接文件然后重试项目 发现链接成功! 搞定如果有问题可以随时wxjavainstalling代号Django