记录一个Django相关的异常(mysqlclient老生常谈)

异常是关于mysqlclient和PyMySQL的

这个异常有些老生常谈了,但是至今都是一个问题,尤其是Python3在不同系统上的兼容性相差较大。这次记录的版本是Python3.10(Python3.11),在Windows11系统版本上可以直接安装mysqlclient

我印象已经有很长一段时间,可以在Django中使用PyMySQL替代mysqlclient,并且这些年mysqlclient有各种依赖问题导致安装失败,相反PyMySQL则可以直接安装。

但是目前发现最新的Django5+Python3.11版本在Windows上正常安装mysqlclient了,且使用PyMySQL则导致一些不兼容的安装问题。而ubuntu22.04容器中的同版本Python就出现了下面的报错:

Collecting mysqlclient==2.2.4Using cached https://pypi.tuna.tsinghua.edu.cn/packages/79/33/996dc0ba3f03e2399adc91a7de1f61cb14b57ebdb4cc6eca8a78723043cb/mysqlclient-2.2.4.tar.gz (90 kB)Installing build dependencies ... doneGetting requirements to build wheel ... errorerror: subprocess-exited-with-error× Getting requirements to build wheel did not run successfully.│ exit code: 1╰─> [27 lines of output]/bin/sh: 1: pkg-config: not found/bin/sh: 1: pkg-config: not found/bin/sh: 1: pkg-config: not foundTrying pkg-config --exists mysqlclientCommand 'pkg-config --exists mysqlclient' returned non-zero exit status 127.Trying pkg-config --exists mariadbCommand 'pkg-config --exists mariadb' returned non-zero exit status 127.Trying pkg-config --exists libmariadbCommand 'pkg-config --exists libmariadb' returned non-zero exit status 127.Traceback (most recent call last):File "/home/env/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>main()File "/home/env/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in mainjson_out['return_val'] = hook(**hook_input['kwargs'])File "/home/env/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheelreturn hook(config_settings)File "/tmp/pip-build-env-wrm_4di5/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheelreturn self._get_build_requires(config_settings, requirements=['wheel'])File "/tmp/pip-build-env-wrm_4di5/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requiresself.run_setup()File "/tmp/pip-build-env-wrm_4di5/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setupexec(code, locals())File "<string>", line 155, in <module>File "<string>", line 49, in get_config_posixFile "<string>", line 28, in find_package_nameException: Can not find valid pkg-config name.Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.note: This error originates from a subprocess, and is likely not a problem with pip.

依据异常提示,这个错误提示是由于缺少 pkg-config 工具导致的。pkg-config 是一个帮助定位编译器和链接器标志的工具,某些 Python 包需要它来定位依赖库的位置。

这里推荐先后安装以下两个包:

apt install pkg-config

另外,安装mysql-client时,libmysqlclient-dev 是 MySQL 客户端库的开发包,通常用于构建需要连接到 MySQL 的软件。在大多数情况下,需要构建 Python 的 MySQL 客户端库(如 mysqlclient),您需要安装 libmysqlclient-dev。

apt install libmysqlclient-dev

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

groovy:XmlParser 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 强大的节点功能&#xff0c;不仅仅节点的种类很多&#xff…

时序预测 | Matlab实现基于GRNN广义回归神经网络的光伏功率预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 1.时序预测 | Matlab实现基于GRNN广义回归神经网络的光伏功率预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高; 4.excel数据,方便替换,运行环境2020及以上。 广义回…

python 运算符总结

什么是运算符 什么是运算符? 先看如下示例 549 例子中&#xff0c;4 和 5 被称为操作数&#xff0c; 称为运算符。 而Python 语言支持以下类型的运算符: 算术运算符比较&#xff08;关系&#xff09;运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级 …

OPENSSL-PKCS7入门知识介绍

1 PKCS7数据结构说明 p7包括6种数据内容&#xff1a;数据(data),签名数据&#xff08;sign&#xff09;&#xff0c;数字信封数据&#xff08;enveloped&#xff09;&#xff0c;签名数字信封数据&#xff08;signed_and_enveloped&#xff09;&#xff0c;摘要数据&#xff08…

软件测试过程中如何有效的开展接口自动化测试

一.简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中&#xff0c;通过对接口的自动化测试来提高测试效率和测试质量&#xff0c;减少人工测试的工作量和测试成本&#xff0c;并且能够快速发现和修复接口错误&…

linux系统git的安装和配置

安装和配置 安装gitYum安装Git编译安装 运行 Git 前的配置配置git命令集配置过程 获取帮助 安装git Yum安装Git yum install git -y编译安装 编译安装可以安装较新版本的git Git下载地址&#xff1a; https://github.com/git/git/releases # 安装依赖关系 yum install curl-d…

总结vue中的Router基本配置命令

Vue的Router是一个用于实现页面跳转和路由管理的插件。它可以帮助我们根据不同的URL请求加载不同的组件&#xff0c;以及实现前端路由功能。在使用Vue的Router时&#xff0c;需要对它进行基本配置。以下是Vue的Router基本配置命令。 1&#xff0c;安装Vue Router 使用npm安装V…

自己测试CSDN质量分3

你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 质量分测试网址

使用Google Maps JavaScript API的步骤

2010年的时候google还没有被封&#xff0c;web地图开发还在使用google map。当时总结了它的使用步骤。 简单例子 第一步&#xff1a; 去http://www.google.com/apis/maps/signup.html 申请一个KeyID 第二步&#xff1a; 在HTML的<title></title>之间加…

智慧校园|智慧校园管理小程序|基于微信小程序的智慧校园管理系统设计与实现(源码+数据库+文档)

智慧校园管理小程序目录 目录 基于微信小程序的智慧校园管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 &#xff08;1&#xff09;学生信息管理 &#xff08;2&#xff09; 作业信息管理 &#xff08;3&#xff09;公告…

蓝桥杯算法赛 第 6 场 小白入门赛 解题报告 | 珂学家 | 简单场 + 元宵节日快乐

前言 整体评价 因为适逢元宵节&#xff0c;所以这场以娱乐为主。 A. 元宵节快乐 题型: 签到 节日快乐&#xff0c;出题人也说出来自己的心愿, 祝大家AK快乐! import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println(&qu…

栈和堆什么意思,Rust所有权机制又是什么

栈和堆什么意思 栈&#xff1a;存储基本数据类型和引用数据类型的指针引用(地址)&#xff0c;基本数据类型占据固定大小的内存空间。 堆&#xff1a;存储引用数据类型的值&#xff0c;引用数据类型包括对象&#xff0c;数组和函数&#xff0c;在堆中&#xff0c;引用数据类型…

AI论文速读 | 【综述】(LLM4TS)大语言模型用于时间序列

题目&#xff1a;Large Language Models for Time Series: A Survey 作者&#xff1a;Xiyuan Zhang , Ranak Roy Chowdhury , Rajesh K. Gupta and Jingbo Shang 机构&#xff1a;加州大学圣地亚哥分校&#xff08;UCSD&#xff09; 网址&#xff1a;https://arxiv.org/abs/…

JAVA工程师面试专题-《Redis》篇

目录 一、基础 1、Redis 是什么 2、说一下你对redis的理解 3、Redis 为什么这么快&#xff1f; 4、项目中如何使用缓存&#xff1f; 5、为什么使用缓存&#xff1f; 6、Redis key 和value 可以存储最大值分别多是多少&#xff1f; 7、Redis和memcache有什么区别&#xf…

Folx Pro Mac中文p破解版如何使用?为您带来Folx Pro 详细使用教程!

​ Folx pro 5 中文版是mac上一款功能强大的老牌加速下载软件&#xff0c;新版本的Folx pro整体界面非常的简洁和漂亮&#xff0c;具有非常好用的分类管理功能&#xff0c;支持高速下载、定时下载、速度控制、iTunes集成等功能。Folx pro兼容主流的浏览器&#xff0c;不但可以下…

libigl 网格harmonic参数化

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格的Harmonic参数化是一种常用的参数化方法,用于将三角形网格映射到二维平面上。Harmonic参数化的基本思想是利用调和函数在网格上的性质,将网格上的每个顶点映射到平面上的一个点,并保持一定的形状性质。 具体…

【深度学习笔记】3_10 多层感知机的PyTorch实现

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.10 多层感知机的简洁实现 下面我们使用PyTorch来实现上一节中的多层感知机。首先导入所需的包或模块。 import torch from torch import nn from torch.nn import …

开源世界的学术问题

自由软件基金会是1983年成立的&#xff0c;到现在是41年。正好很有意思的是&#xff0c;在去年还有一篇文章&#xff08;CSDN 的翻译&#xff09;&#xff0c;专门在质疑说成立 40 年的自由软件基金会是不是已经快不行了&#xff0c;所以我们会用这个标题叫做兴衰发展历程来介绍…

Excel的中高级用法

单元格格式&#xff0c;根据数值的正负分配不同的颜色和↑ ↓ 根据数值正负分配颜色 2-7 [蓝色]#,##0;[红色]-#,##0 分配颜色的基础上&#xff0c;根据正负加↑和↓ 2↑-7↓ 其实就是在上面颜色的代码基础上加个 向上的符号↑&#xff0c;或向下的符号↓ [蓝色]#,##0↑;[红色…

Android中抽象类与接口的区别?Activity与Fragment之间的通信方式有哪些?

目录 抽象类与接口的区别&#xff1f; Activity与Fragment之间的通信方式有哪些&#xff1f; 抽象类与接口的区别&#xff1f; 抽象类和接口在Java和Android开发中都是用来实现多态和代码复用的机制&#xff0c;但它们有一些关键的区别&#xff1a; 定义和使用方式&#xff…