mac MySQL升级后mysqlclient安装失败

  • 今天无意间把MySQL升级到了8.0.22_1,然后pip安装mysqlclient发现会报以下错误:
         /usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 -I/usr/local/Cellar/mysql-connector-c/6.1.11/include -I/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m -c _mysql.c -o build/temp.macosx-10.6-intel-3.5/_mysql.o
        _mysql.c:29:10: fatal error: 'mysql.h' file not found
        #include "mysql.h"
                 ^~~~~~~~~
        1 error generated.
        error: command '/usr/bin/clang' failed with exit status 1
        ----------------------------------------
    ERROR: Command errored out with exit status 1: /Users/wangxvyang/Desktop/lls/saas_venv/bin/python3.5 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/07/v8slhf9x5zsbbd8_9cd5ztnh0000gp/T/pip-install-0hr2meqk/mysqlclient_8acf18de89944ee2ad989cb2f8835068/setup.py'"'"'; __file__='"'"'/private/var/folders/07/v8slhf9x5zsbbd8_9cd5ztnh0000gp/T/pip-install-0hr2meqk/mysqlclient_8acf18de89944ee2ad989cb2f8835068/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/07/v8slhf9x5zsbbd8_9cd5ztnh0000gp/T/pip-record-5qvzp9ru/install-record.txt --single-version-externally-managed --compile --install-headers /Users/wangxvyang/Desktop/lls/saas_venv/include/site/python3.5/mysqlclient Check the logs for full command output.
    
  • 大概意思就是找不到mysql.h这个文件了。
  • 根据报错内容查了一下/usr/local/Cellar/mysql-connector-c/6.1.11/include这个文件夹发现,文件夹就不存在,根据路径可以看出来这个查找的版本还是6.1.11,到/usr/local/Cellar/mysql-connector-c/文件夹看了一下,发现里面只有一个8.0.22_1的文件夹,刚好8.0.22_1里面有mysql.h这个文件,突发奇想,能不能复制一个改名为6.1.11,说干就干:
    cd /usr/local/Cellar/mysql-connector-c/
    cp -r 8.0.22_1 6.1.11
    
  • 重试了一下,发现依然找不到mysql.h,仔细看了一下路径,发现/usr/local/Cellar/mysql-connector-c/6.1.11/include下多了一层mysql的文件夹,把mysql文件夹里的数据文件全部提到/usr/local/Cellar/mysql-connector-c/6.1.11/include这一层。
    cd 6.1.11/include
    cp -r mysql/* ../include/
    
  • 然后重新pip install mysqlclient,竟然搞定了!!!
  • ps:这个方法明显不是最优方案,但是查了好久资料也没有找到能够直接调整pip install时获取mysql.h路径的方法,只能先用这个了,如果有知道更好方法的希望能够分享出来,多谢!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 安装 `mysqlclient` 可能会遇到一些问题,下面提供一些解决方案: 1. 确认已经安装MySQL C Connector `mysqlclient` 是一个 Python 对 MySQL 数据库的接口,需要依赖于 MySQL C Connector。如果没有安装,可以从官网下载:https://dev.mysql.com/downloads/connector/c/ 2. 确认已经安装了 Microsoft Visual C++ Build Tools `mysqlclient` 是一个 C 扩展,需要编译。在 Windows 平台上,需要安装 Microsoft Visual C++ Build Tools。可以从官网下载:https://visualstudio.microsoft.com/visual-cpp-build-tools/ 3. 确认已经安装了 OpenSSL `mysqlclient` 依赖于 OpenSSL 库。在 Windows 平台上,可以从 https://slproweb.com/products/Win32OpenSSL.html 下载预编译的 OpenSSL 库。 4. 确认已经安装了 Python 开发环境 在 Windows 平台上,需要安装 Python 的开发环境。可以从 https://www.python.org/downloads/windows/ 下载 Python 安装包,并选择安装时包含“Add Python to PATH”选项。 5. 使用 pip3 安装 在命令行中使用 `pip3 install mysqlclient` 安装,确保使用的是 Python 3.x 版本。 如果还是遇到问题,可以尝试在安装时指定参数,例如: ```bash pip3 install mysqlclient --global-option=build_ext --global-option="-IC:\Program Files\MySQL\MySQL Connector C 6.1\include" --global-option="-LC:\Program Files\MySQL\MySQL Connector C 6.1\lib" ``` 其中,`--global-option="-IC:\Program Files\MySQL\MySQL Connector C 6.1\include"` 和 `--global-option="-LC:\Program Files\MySQL\MySQL Connector C 6.1\lib"` 分别指定了 MySQL C Connector 的 include 和 lib 目录。根据实际情况进行修改。 ### 回答2: 在Pycharm中安装mysqlclient失败可能是由以下几个原因引起的: 1. 确保在安装mysqlclient之前已经在主机上安装MySQL数据库。如果没有安装MySQL,可以从MySQL官方网站上下载并按照说明进行安装。 2. 确保已经按照正确的版本和Python环境安装mysqlclient。可以使用命令`pip install mysqlclient`进行安装。如果安装失败,可以尝试使用其他方式进行安装,如使用Anaconda中的Conda进行安装。 3. 安装mysqlclient时可能会遇到依赖问题。可以尝试先安装MySQL驱动程序依赖项,然后再安装mysqlclient。例如,在Ubuntu上,可以使用以下命令安装依赖项:`sudo apt-get install libmysqlclient-dev`,然后再尝试安装mysqlclient。 4. 如果上述方法都无效,也可能是因为操作系统或者PyCharm的权限问题。可以尝试使用管理员权限或者以root身份运行安装命令,以确保有足够的权限进行安装。 综上所述,以上是在Pycharm中安装mysqlclient失败可能的原因和解决方案。希望能对您有所帮助! ### 回答3: 在PyCharm中安装mysqlclient失败可能有多种原因,以下是可能的解决方案: 1. 安装依赖库:mysqlclient需要依赖于MySQL的C语言客户端库,因此在安装mysqlclient之前,需要确保MySQL的C语言客户端库已经正确安装。可以通过以下方式安装:`sudo apt-get install libmysqlclient-dev`(适用于Ubuntu/Debian系统)或者`brew install mysql-connector-c`(适用于Mac系统)。 2. 检查Python环境:确保你使用的Python环境与PyCharm中设置的Python解释器一致。可以在PyCharm中的项目设置中确认当前的Python解释器,并验证是否安装了正确版本的MySQLclient。 3. 使用pip安装:在PyCharm的终端窗口中运行`pip install mysqlclient`来安装mysqlclient。这样做可以确保安装的版本与PyCharm的Python解释器匹配。 4. 使用conda安装:如果你使用的是Anaconda环境,可以尝试使用conda安装mysqlclient。运行`conda install mysqlclient`可以自动解决依赖关系并安装mysqlclient。 5. 更新PyCharm和pip:确保你使用的是最新版本的PyCharm和pip。在PyCharm中,可以通过"Help" -> "Check for Updates"来检查并更新PyCharm。在终端中,可以运行`pip install --upgrade pip`来更新pip。 6. 手动编译安装:如果上述方法都无法解决问题,可以尝试手动编译安装mysqlclient。从官方GitHub仓库(https://github.com/PyMySQL/mysqlclient-python)中下载源代码,然后按照官方文档中的说明进行安装。 如果还是无法解决安装问题,可以尝试搜索相关错误信息或咨询PyCharm官方论坛或MySQLclient的开发者社区,寻求更具体的帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光不写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值