MacOS下Python3安装mysql包报ModuleNotFoundError问题咨询
问题根因
你通过pip install mysql安装的mysql 0.0.3是PyPI上留存的无效空壳占位包,本身不包含任何可执行的Python模块代码,安装流程只会写入dist-info格式的元数据文件,不会生成可供导入的实体代码目录,这是导入时提示模块不存在的直接原因,和你本地macOS 11.6系统、Python 3.10环境的配置没有关联。
另外你环境中已经安装的mysqlclient 2.1.1是正经的C语言实现MySQL驱动,但它的导入名并非mysql,属于典型的PyPI包名和实际导入名不一致的情况,就算安装正确也无法通过import mysql触发导入。
修复步骤
- 首先清理无效的空壳包,执行命令:
python3 -m pip uninstall -y mysql,删除残留的无用元数据,避免后续包识别异常 - 按照自身使用场景选择正确的MySQL驱动安装,不要直接安装名为
mysql的空包:- 如果你需要无额外编译依赖、官方维护的纯Python驱动,执行
python3 -m pip install mysql-connector-python,安装完成后通过import mysql.connector即可正常调用 - 如果你要使用已经装好的
mysqlclient,直接在交互环境执行import MySQLdb即可,注意导入名的大小写 - 如果你需要兼容旧项目中
import MySQLdb的写法,又不想处理mysqlclient在macOS上的编译依赖问题,可以执行python3 -m pip install PyMySQL,安装完成后在项目入口代码的最开头添加import pymysql;pymysql.install_as_MySQLdb()即可无缝适配
- 如果你需要无额外编译依赖、官方维护的纯Python驱动,执行
- 安装完成后可以到对应的site-packages目录校验:正常可用的第三方包都会生成带实际代码的同名目录,不会只存在dist-info/egg-info元数据文件夹,确认目录存在后再做导入测试即可。
内容的提问来源于stack exchange,提问作者skrilmps
相关产品推荐
相关产品推荐

