WSL Ubuntu20.04安装pycairo指南

news2024/11/26 16:47:30

环境说明

wsl Ubuntu20.04

走过的一些可能有用的弯路

由于pycairo要求python3.7+,但是之前Ubuntu上有个3.6的python环境,所以就安装了python3.8:

sudo apt install python3.8

然后python3命令还是链接到python3.6,结果就yongln -s改了半天,但是反而好像把环境搞崩了。于是乎狠下心来直接把py桃红。8和python3.6都卸载了,命令如下:

sudo apt-get remove python3.8
sudo apt-get autoremove
sudo apt-get remove python3.6
sudo apt-get autoremove

然后玄学又神奇的事情发生了,python3.6卸载干净了,而且他自动给我把python3.8安装好了。而且这期间我没有再更改/usr/bin/python3的软链接什么的。

在这里插入图片描述

python3.8环境好了还得再安装个pip3,更神奇的是我之前的pip似乎也没有了,于是两个都安装一下:

python -m ensurepip
python -m pip install --upgrade pip

sudo apt-get install python3-pip
sudo pip3 install --upgrade pip

在这里插入图片描述

安装pycaico

pip3 install pycairo

结果报错如下:

在这里插入图片描述

报错的意思是少这个1pkg-config包,那安装一下就好了:

sudo apt install pkg-config

安装完继续pip3 install pycairo安装pycairo,结果又遇到了下面的报错:

在这里插入图片描述

这时候突然意识到,应该是缺少了cairo >= 1.15.10的问题,然后查了一下pycairo官网,确实有这个说法:

在这里插入图片描述

然后就继续去cairo官网看怎么安装cairo,如下图:

在这里插入图片描述

所以直接按照命令安装就好了,命令如下:

sudo apt-get install libcairo2-dev

然后继续pip3 install pycairo安装pycairo,就可以成功安装了:

在这里插入图片描述

测试

igraph读取gml文件并调用plot()来测试是否可以绘图。当然需要安装,igraph官网:

pip3 install igraph

gml格式文件来源,这个网站感觉本身也很值得收藏。在测试中用的是海豚的数据集。
测试代码如下:

import igraph as ig
import matplotlib.pyplot as plt

inputfilepath = "./dolphins/dolphins.gml"
g = ig.load(inputfilepath)

fig, ax = plt.subplots(figsize=(10,10))
ig.plot(g, target=ax)

fig_path = "graph.png"
plt.savefig(fig_path, bbox_inches='tight', dpi=600)
print("Finished!")

这里有个小细节就是WSL没有安装图形化界面的话plt.show()命令是没有办法显示图片的,所以需要把图片存下来后再查看。结果如下图:

在这里插入图片描述

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

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

相关文章

Stateflow状态转移练习

文章目录1.外部转移与内部转移1.1 stateflow1.2 分析2.外部转移内部转移超转移2.1 stateflow2.2 video1.外部转移与内部转移 1.1 stateflow 1.2 分析 首先是 xyz0,然后进入 A 状态,此时 A 的 en 激活,xx1,即 x1其次进入默认状态…

聊天软件im即时通讯源码酷信视酷,在线语音视屏通话端对端加密聊天,支持7端互通带部署教程

APP端有安卓端苹果端,PC端,web端,管理端有PC后台! .产品为独立开发,非网上下载不能用的产品! .高端产品,即时聊天软件技术难度大,请不要拿网络其他聊天软件来对比&#xff0…

多线程,了解-概念-实现方式-常见方法-安全问题-死锁-生产者消费者

了解 简单了解多线程 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。 简单了解多线程 简单了解多线程 简单了解多线程 简单了解多线程 概念 线程相关的概念 并行:在同…

【Linux进阶】-- 1.python脚本实现守护进程daemon调度,启停等

"怀斯曼不蒸汽啊"1. Linux守护进程介绍1.1 查看进程2. python指令for linux2.1 运行shell命令3. 代码讲解3.1 创建守护进程文件pre_deal.py3.2 用脚本运行3.3 用一个python程序来管理该任务任务介绍: 首先python创建文件1,作用是创建一个守护进程,内容是持续输出时间…

<C++>手撕搜索二叉树

目录 一、搜索二叉树的性质 二、搜索二叉树的结构定义 三、手撕搜索二叉树非递归 1)Insert() 2)Find() 3)Erase() 4)InOder() 5)BSTree(const BSTree& t) 拷贝构造 6)~BSTree()析构函数 四、手…

【学习笔记65】JavaScript的继承

一、认识继承 function Person(name) {this.name name}Person.prototype.sayName () > {console.log(name)}function Stu(age) {this.age age}const s new Stu(18)console.log(s) // {age: 18} 说明: 想让s这个对象内部有一个name属性, 并且可以使用 sayN…

双功能连接试剂:Alkyne hydrazide,炔烃-酰肼 主要特点进行分享

Alkyne hydrazide物理参数: CAS号:N/A |英文名:Alkyne hydrazide | 中文名:炔烃-酰肼 货号:X-CL-1132 分子式:C6H11ClN2O 分子量:162.62 纯度:95% 外形:淡黄色或白…

企业级的商用远程控制软件有哪些

现在远程控制软件,可选性还是比较大的。针对个人用户市场,也有不少免费软件。 企业用户的需求和个人用户的需求,差别较大。个人用户市场,主要诉求是免费、好用。企业用户,主要关注安全、管理功能、性能、价格等因素。…

为什么建议MySQL在2000W条左右记录分表

为什么建议MySQL在2000W条左右记录分表?这个数量问题并不是绝对的,这是一个相对的数量。在回答这个问题前我们应该先了解MySQL底层是用的什么数据结构来进行数据存储的。 MySQL底层采用的B树进行的数据存储 InnoDB存储引擎最小储存单元是页,…

【Java面试】异常常见面试题

文章目录1. Error 和 Exception 区别是什么?运行时异常和一般异常(受检异常)区别是什么?JVM 是如何处理异常的?throw 和 throws 的区别是什么?final、finally、finalize 有什么区别?NoClassDefFoundError 和 ClassNotF…

OpenMP 快速入门

学习《高性能计算:现代系统与应用实践》(Thomas Sterling,Matthew Anderson,Maciej Brodowicz)第 7 章 OpenMP 的基础 OpenMP OpenMP 是一个 API C、C、Fortran OpenMP 是共享内存的多线程编程模型 共享内存 默认所有…

22年11月-自研-面试题

目录背景题目Activiti回退功能条件分支功能,并行网关、包含网关有没有用到流程流转中,需知会其他人,这些人需同意/做处理(有点流程的感觉),最后所有的意见都要汇总。你的实现思路Redis哪些数据结构&#xf…

STM32实战总结:HAL之低功耗

低功耗的含义不必过多解释,一听就能懂。 低功耗对电池供电产品尤其重要。 STM32的有三种低功耗模式,即睡眠模式、停止模式和待机模式。 在我的印象中,停止不就是关机吗?但并不是。 在系统或电源复位以后,微控制器处于运…

基于最小二乘插值(Least-Squares Interpolation)图像超分辨率重构算法研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、最小二乘图像插值理论与Matlab处理✳️ 三、基于最小二乘插值超分辨重构实验验证✳️ 四、参考文献✳️ 五、Matlab程序获取与验证✳️ 一、引言 图像超分辨率重构技术起源于上世纪60年代Harris和Goodman构造的单帧图像重构方法&#xf…

AutoCAD Electrical 2022—元件的绘制

原理图——图标菜单 选择要插入的元件; 根据实际情况,选择垂直放置还是水平放置,比例大小; 选择一个三极断路器,垂直放置; 点击确定后,点击一根导线,选择断路器另外两个符号是的方向…

相控阵天线(十一):阵列天线有源驻波分析

目录简介有源驻波概念和计算公式平面阵列天线的有源驻波平面阵列有源驻波计算公式平面阵列有源驻波仿真示例不同耦合系数/隔离度的有源驻波分析简介 有源相控阵最大的特点是每一个收发天线后均连接一个独立的T/R组件,每一个T/R组件相当于一个常规雷达的高频前端&am…

【信息检索与数据挖掘期末笔记】(二) IR Evaluation

文章目录测试集无序检索结果集合的评价Precision & RecallAccuarcy?F值有序检索结果评价方法二值相关(相关/不相关)PrecisionK(PK)Mean Average Precision(MAP)Mean Reciprocal Rank多级相关CG&#x…

LeetCode542. 01 矩阵(C++中等题)

题目 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入:mat [[0,0,0],[0,1,0],[0,0,0]] 输出:[[…

(三) 共享模型之管程【共享带来的问题】

一、共享带来的问题 1. 临界区 (1)一个程序运行多个线程本身是没有问题的 (2)问题出在多个线程访问共享资源 1️⃣多个线程读共享资源其实也没有问题 2️⃣在多个线程对共享资源读写操作时发送指令交错,就会出现问题 …

git@github.com: Permission denied (publickey).

本地虚拟机ubuntu上安装git,想从github上拉取项目到ubuntu上的过程。 1、在ubuntu上安装git 更新apt指令 sudo apt update 安装git sudo apt install git 查看安装git版本 git --version 2、ssh认证 首先已经安装了ssh指令 先执行 ssh -T gitgithub.com 执行之…