• WSL Ubuntu20.04安装pycairo指南


    环境说明

    wsl Ubuntu20.04

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

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

    sudo apt install python3.8
    
    • 1

    然后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
    
    • 1
    • 2
    • 3
    • 4

    然后玄学又神奇的事情发生了,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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    安装pycaico

    pip3 install pycairo
    
    • 1

    结果报错如下:

    在这里插入图片描述

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

    sudo apt install pkg-config
    
    • 1

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    sudo apt-get install libcairo2-dev
    
    • 1

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

    在这里插入图片描述

    测试

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

    pip3 install igraph
    
    • 1

    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!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    在这里插入图片描述

  • 相关阅读:
    RSLO:自监督激光雷达里程计(实时+高精度,ICRA2022)
    在Linux环境下运行你的第一个C语言程序
    编译执行JAVA含中文字符串文件,终端输出乱码问题处理
    python中的进程间通信
    ??????
    ON1 Photo RAW 2024 for Mac——专业照片编辑的终极利器
    vue3 的组件通信以及ref的使用
    【Proteus仿真】【Arduino单片机】HC05蓝牙通信
    v0.9.6 开源跨平台个人知识管理工具 TidGi-Desktop
    css 对号 叉号
  • 原文地址:https://blog.csdn.net/m0_46161993/article/details/128116224