如何在Mac电脑上安装WeasyPrint:简单易懂的步骤

news2025/1/14 18:08:19

1. 安装homebrew

首先需要确保安装了homebrew,通过homebrew安装weasyprint可以将需要的库都安装好,比pip安装更简单快捷。
安装方法如下:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

这个脚本只需要做选择题就可以自动安装homebrew,并设置好国内的镜像源,非常好用。

2. 通过homebrew安装weasyprint

这步更简单,执行以下脚本等待安装完成即可。

brew install weasyprint

正常来说到这里基本上已经结束了,但是由于系统路径问题,苹果系统会出现如下错误:

OSError: cannot load library 'gobject-2.0-0'

可以看到无法找到系统库中的gobject等组件,这里我们需要手动做一下指向。
执行以下脚本即可,这里只针对通过homebrew安装weasyprint的方法才有效。

sudo ln -s /opt/homebrew/opt/glib/lib/libgobject-2.0.0.dylib /usr/local/lib/gobject-2.0
sudo ln -s /opt/homebrew/opt/pango/lib/libpango-1.0.dylib /usr/local/lib/pango-1.0
sudo ln -s /opt/homebrew/opt/harfbuzz/lib/libharfbuzz.dylib /usr/local/lib/harfbuzz
sudo ln -s /opt/homebrew/opt/fontconfig/lib/libfontconfig.1.dylib /usr/local/lib/fontconfig-1
sudo ln -s /opt/homebrew/opt/pango/lib/libpangoft2-1.0.dylib /usr/local/lib/pangoft2-1.0

如果有如下报错:
在这里插入图片描述
只需要手动前往/usr/local/ 目录下创建lib目录即可。

然后就可以成功通过python运行weasyprint模块了。
在网上看到有人说通过homebrew安装python,然后再安装weasyprint可以不需要重新做系统指向,这个我没试过,感兴趣的朋友可以尝试下。

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

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

相关文章

800V架构下,扁线电机该怎么“绕”?

800V高压平台下,整车电池系统,充电系统,电驱系统均要向高电压平台进行开发。电机作为三电系统中的核心,其效率表现直接影响了整车的性能。而在800V架构下,电机的设计与低压平台的设计也有所不同,要求电驱系…

使用多进程的方式改写聊天程序(有名管道)

目录 1、思路2 、步骤 1、思路 2 、步骤 步骤1&#xff1a;创建两个管道 makefifo fifo1 fifo2步骤2&#xff1a;编写talkA.c文件 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/stat.h> #in…

Pandas实用技巧

首先我们需要先提前下载好示例数据集&#xff1a; drinksbycountry.csv : http://bit.ly/drinksbycountry imdbratings.csv : http://bit.ly/imdbratings chiporders.csv : http://bit.ly/chiporders smallstockers.csv : http://bit.ly/smallstocks kaggletrain.csv : htt…

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决 今天发现rt系统的adc有一个缺陷&#xff08;也可能是我移植的方法有问题&#xff0c;这就不得而知了&#xff01;&#xff09;&#xff0c;就是只能单次转换&#xff0c;事情是这样的&#xff1a; 我在stm32的RT-T…

中国人民大学与加拿大女王大学金融硕士项目——金融行业的你怎么能不知道?

虽然金融圈总是被内行各种吐槽&#xff0c;如工作时长久、内卷严重、做不完的报告、以及分析不完的数据等等&#xff0c;但不得不承认&#xff0c;金融行业的确给予了人实现财富自由的机会。人生的梦想与碎银几两同样重要。想要在金融圈混得更好就不能停下提升的脚步&#xff0…

全网首发!奔驰宝马奥迪卡带机卡带通道激活模块,无损安装可以接2路AUX

文章目录 1.前言2.时序逆向分析2.1协议分析2.2卡带音频通道引出 3、PCB设计4、程序设计5、焊接调试6、结语 1.前言 ​ 之前写过四篇关于车机增加音频输入的方法。 1、07宝来经典车机CD收音机&#xff08;RC668&#xff09;改装增加蓝牙播放音乐 2、全网首发&#xff01;老大…

基于共享内存 实现Python 和c++ 传输图片

需求&#xff1a;c 将图片写入共享内存&#xff0c;python读取。将c写的共享内存的操作封装为一个so库&#xff0c;c 和python共同调用这个库&#xff0c;便于双方的操作&#xff0c;省去信号量的管理操作。 一,c写入端 int main(int argc, char **argv) {SharedMemoryOption…

D358周赛复盘:哈希表模拟⭐⭐+链表乘法翻倍运算(先反转)⭐⭐⭐

文章目录 2815.数组中的最大数对和思路完整版 2816.翻倍以链表形式表示的数字&#xff08;先反转&#xff0c;再处理进位&#xff09;思路完整版 补充&#xff1a;206.反转链表&#xff08;双指针法&#xff09;完整版 2817.限制条件下元素之间的最小绝对差&#xff08;cpp不知…

每秒百万级高效C++异步日志实践

一个高效可拓展的异步C日志库&#xff1a;RING LOG&#xff0c;本文分享了了其设计方案与技术原理等内容 详细代码见github路径&#xff1a;点击打开链接 导论 同步日志与缺点 传统的日志也叫同步日志&#xff0c;每次调用一次打印日志API就对应一次系统调用write写日志文件…

国际音标学习笔记

目录 1.单元音2.双元音3.辅音4.音节5.自然拼读法则5.1辅音字母的音标 1.单元音 我觉得单纯的音标并不好记住&#xff0c;所以就跟着老师整&#xff0c;根据单词记住音标的发音&#xff0c;以下是我的理解 音标对应的单词汉化iis衣əer饿ɔorigin奥u/ʊwoman五ʌart啊eanything哎…

哪个视觉语言模型更优?InstructBLIP、MiniGPT-4?全面评估基准LVLM-eHub告诉你

夕小瑶科技说 原创 作者 | 王思若 LLaMA、GPT-3等大型语言模型实现了对自然语言强大的理解和推理能力&#xff0c;为AI社区构筑了强大的语言基座模型。进而&#xff0c;继续迭代的GPT-4&#xff0c;更是赋予了模型处理图像的视觉能力。 如今&#xff0c;构建强大的多模态模型…

有源医疗器械技术要求编写要求之附录内容

目录 一、附录A中主要安全特征内容 二、附录内容简介 1、按防电击类型分类: 2、按防电击的程度分类: 3.按对进液的防护程度进行分类: 4.按在与空气混合的易燃麻醉气或与氧或氧化亚氮混合的易燃麻醉气况下使用时的安全程度分类: 6.设备的额定电压和频率 7.设备的输入功率…

QT 发布软件基本操作

一、配置环境变量 找到Qt安装时的bin目录的路径&#xff1a;D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin&#xff0c;将目录拷贝至下述环境变量中。 打开计算机的高级系统设置 选中环境变量-->系统变量-->Path 点击编辑-->新建-->粘贴 二、生成发布软件的可执行程序 …

【Python从入门到进阶】34、selenium基本概念及安装流程

接上篇《33、使用bs4获取星巴克产品信息》 上一篇我们介绍了如何使用bs4来解析星巴克网站&#xff0c;获取其产品信息。本篇我们来了解selenium技术的基础。 一、什么是selenium&#xff1f; Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API&#xff08;应…

SpringBoot——整合Mongodb

简单介绍 Mongdb是一个开源&#xff0c;高性能&#xff0c;无模式的文档型数据库&#xff0c;NoSQL数据库产品中的一种&#xff0c;是最像关系型数据库的非关系型数据库。 使用场景 用户数据 存储位置&#xff1a;数据库特征&#xff1a;永久性存储&#xff0c;修改频率极低游…

【C++】C++ 引用详解 ⑩ ( 常量引用案例 )

文章目录 一、常量引用语法1、语法简介2、常引用语法示例 二、常量引用语法1、int 类型常量引用示例2、结构体类型常量引用示例 在 C 语言中 , 常量引用 是 引用类型 的一种 ; 借助 常量引用 , 可以将一个变量引用 作为实参 传递给一个函数形参 , 同时保证该值不会在函数内部被…

可观测性用观测云,观测云护航「杭州亚运会」

2023 年亚洲运动会定于 2023 年 9 月 23 日至 10 月 8 日在中国杭州举办&#xff0c;这是在党的二十大召开后&#xff0c;我国疫情防控措施优化调整后举办的最大规模、最高水平的国际综合性运动会&#xff0c;意义十分重大。杭州亚组委以「举办一届史上最成功的亚运会」为工作目…

【0901作业】QTday3 对话框、发布软件、事件处理机制,使用文件相关操作完成记事本的保存功能、处理键盘事件完成圆形的移动

目录 一、思维导图 二、作业 2.1 使用文件相关操作完成记事本的保存功能 2.2 处理键盘事件完成圆形的移动 一、思维导图 二、作业 2.1 使用文件相关操作完成记事本的保存功能 void Widget::on_saveBtn_clicked() {QString filename QFileDialog::getSaveFileName(this,&…

MySQL数据库学习【进阶篇】

MySQL数据库学习进阶篇 MySQL进阶篇已经更新完毕&#xff0c;点击网址查看&#x1f449;&#xff1a;MySQL数据库进阶篇

【点击checkbox复选框,显示or隐藏某区域】

功能&#xff1a; 1. 选中复选框&#xff0c;显示隐藏的区域&#xff1b; 2. 取消选中&#xff0c;再隐藏该显示的区域。 方法1&#xff1a;在layui jquery框架下 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta char…