Linux manim安装

简介

根据文档可知, manim目前分为两个版本, 一个是由3Blue1Brown维护更新的最新版本的manimgl, 另一个是稳定的社区版本manim or manimce. 两个版本在安装和使用上都有些不同, 不要搞混.

Linux manim ERROR

No package ‘pangocairo’ found

Getting requirements to build wheel ... errorerror: subprocess-exited-with-error× Getting requirements to build wheel did not run successfully.│ exit code: 1╰─> [31 lines of output]Package pangocairo was not found in the pkg-config search path.Perhaps you should add the directory containing `pangocairo.pc'to the PKG_CONFIG_PATH environment variableNo package 'pangocairo' found

看报错信息, 是pangocairo的问题, 手动下载编译安装
从官网下载pango-1.51.0.
解压后进入文件夹内
在这里插入图片描述
可知是使用mesonninjia构建的.
首先下载

pip3 install meson ninja

构建的一般过程如下:

# 通过--prefix指定install路径, 不然默认装到系统路径(无权限) meson setup $builddir --prefix=${path to install}ninja -C $builddirninja -C $builddir install

可在文件夹下新建一个build作为$builddir, install位置可以就设为pango-1.51.0文件夹.
按步骤安装完毕后, 在.bashrc中写入pangocairo.pc所在的位置
先查找

$ find ./ -name "pangocairo.pc"
./lib/x86_64-linux-gnu/pkgconfig/pangocairo.pc
./build/meson-private/pangocairo.pc

所以在.bashrc中写入

# pkg-config path
export PKG_CONFIG_PATH="/path/to/pango-1.51.2/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH"

source ~/.bashrc再次进行pip install manim即可.

Original error: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory

类似地, 在.bashrc加入环境变量

# 修改为对应的pango路径
export LD_LIBRARY_PATH="/pango/path/pango-1.51.2/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH"

ImportError: /lib/x86_64-linux-gnu/libgobject-2.0.so.0: undefined symbol: ffi_type_uint32, version LIBFFI_BASE_7.0

根据comment, 设置环境变量

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7

Unknown encoder ‘libx264’

卸载重装ffmpeg即可

FileNotFoundError: [Errno 2] No such file or directory: ‘xdg-open’

视频已经成功生成, 应该是在服务器终端无法自动打开的意思.
-p参数表示Previewed, 去掉该参数即可. 并且在本应用中使用后端投放到web UI上, 无需预览功能.
下面是无root用户尝试解决/安装xdg-open的记录.


这个comment说更新sededu, 下载之后好像不起作用.
参考这个, 尝试手动安装xdg-utils.
下载xdg-utils-v1.2.1

./configure --prefix=/path/to/install
make && make install -j8

/usr/bin/xmlto: not found/home/stlinpeiyang/lpy22/software/xmlto-0.0.28

安装xmlto

尝试从这里尝试安装xmlto

./configure --prefix=/path/to/install
make && make install -j8

没问题, 填入环境变量再次尝试安装xdg
失败 暂时no way

直接安装deb包

从这里下载xdg-utils_1.1.3
使用

# 应该要使用绝对路径才有效
dpkg -x xdg-utils_1.1.3-2ubuntu1_all.deb /path/to/install

然后就会在路径下生成usr/bin等文件夹和文件

(py_LLM) user@ubuntu:~/lpy22/software$ ls .local/usr/bin/
browse            xdg-desktop-menu  xdg-icon-resource  xdg-open         xdg-settings
xdg-desktop-icon  xdg-email         xdg-mime           xdg-screensaver

然后加入环境变量再激活即可.

export PATH=$PATH:/path/to/.local/usr/bin/

安装cairo

下载文件cairo-1.18.0

 error: unknown type name ‘pixman_dither_t’; did you mean ‘pixman_filter_t’?954 |     pixman_dither_t pixman_dither = _cairo_dither_to_pixman_dither (source->dither);|     ^~~~~~~~~~~~~~~|     pixman_filter_t
../src/cairo-image-surface.c:954:37: error: implicit declaration of function ‘_cairo_dither_to_pixman_dither’ [-Werror=implicit-function-declaration]954 |     pixman_dither_t pixman_dither = _cairo_dither_to_pixman_dither (source->dither);|                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/cairo-image-surface.c:955:5: error: implicit declaration of function ‘pixman_image_set_dither’; did you mean ‘pixman_image_set_filter’? [-Werror=implicit-function-declaration]955 |     pixman_image_set_dither (surface->pixman_image, pixman_dither);|     ^~~~~~~~~~~~~~~~~~~~~~~|     pixman_image_set_filter
cc1: some warnings being treated as errors
[171/722] Compiling C object src/libcairo.so.2.11800.0.p/cairo-pdf-surface.c.o
ninja: build stopped: subcommand failed.

一般系统都自带cairo 遂放弃.


manimgl ERROR

screeninfo.common.ScreenInfoError: No enumerators available

manimgl好像是需要一个窗口来进行交互或预览, 所以在Linux服务器跑不了.
文档
在这里插入图片描述
在服务器尝试manimgl报错如下:

python3.10/site-packages/screeninfo/screeninfo.py", line 32, in get_monitorsraise ScreenInfoError("No enumerators available")
screeninfo.common.ScreenInfoError: No enumerators available

目前还没解决
关于Pyglet Window

FileNotFoundError: [Errno 2] No such file or directory: ‘C:\Users\PLA\AppData\Local\Temp\Tex\42c962cc458aefe6.log’

在Windows下若不是安装在C盘, 则会显示找不到tex log文件. 解决方法如下:
default_config.yml文件中

# Manim often generates tex_files or other kinds of serialized data# to keep from having to generate the same thing too many times.  By# default, these will be stored at tempfile.gettempdir(), e.g. this might# return whatever is at to the TMPDIR environment variable.  If you want to# specify them elsewhere,temporary_storage: "E:\\projects\\manim\\media"

manim文件夹下新建media文件夹添加为temporary_storage即可.

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

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

相关文章

C++进阶之路---C++11新特性 | lambda表达式

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 前言:简介lambda 在C中,lambda表达式是一种匿名函数的方式,它可以用来解决以下问题&a…

稀碎从零算法笔记Day26-LeetCode:跳跃游戏

断更多天,懒狗ex 题型:数组、模拟、类似双指针? 链接:55. 跳跃游戏 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组…

【Diffusers库】第四篇 训练一个扩散模型(Unconditional)

目录 写在前面的话下载数据模型配置文件加载数据创建一个UNet2DModel创建一个调度器训练模型完整版代码: 写在前面的话 这是我们研发的用于 消费决策的AI助理 ,我们会持续优化,欢迎体验与反馈。微信扫描二维码,添加即可。   官方…

uni-app中web-view的使用

1. uni-app中web-view的使用 uni-app中的web-view是一个 web 浏览器组件,可以用来承载网页的容器,uni-app开发的app与web-view实现交互的方式相关简单,应用通过属性message绑定触发事件,然后在web-view的网页向应用 postMessage 触…

遥感卫星影像质量评价指标汇总

1. 主观评价方法 以人为图像的评价者,根据自己的评价尺度和经验对图像质量进行评价。 2. 客观评价方法 1)均方差 2)信噪比 主要用来评价影像经压缩、传输、增强等处理前后的质量变化情况,其本质与均方差类似。 3)方差 反映了图像各个像元灰度相对…

18.字面量

文章目录 一、字面量二、区分技巧三、扩展: /t 制表符 一、字面量 在有些资料,会把字面量说成常量、字面值常量,这种叫法都不是很正确,最正确的叫法还是叫做:字面量。 作用:告诉程序员,数据在…

itextPdf生成pdf简单示例

文章环境 jdk1.8&#xff0c;springboot2.6.13 POM依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.ite…

小米还涉足了哪些领域

小米作为一家全球性的移动互联网企业&#xff0c;其业务领域相当广泛&#xff0c;除了核心的智能手机业务外&#xff0c;还涉足了许多其他领域。以下是对小米涉足领域的简要介绍&#xff1a; 智能硬件与IoT平台&#xff1a;小米是全球领先的智能硬件和IoT平台公司&#xff0c;致…

iOS网络抓包工具全解析

摘要 本文将深入探讨iOS平台上常用的网络抓包工具&#xff0c;包括Charles、克魔助手、Thor和Http Catcher&#xff0c;以及通过SSH连接进行抓包的方法。此外&#xff0c;还介绍了克魔开发助手作为iOS应用开发的辅助工具&#xff0c;提供的全方面性能监控和调试功能。 在iOS应…

Dubbo启动流程

Java面试题 Dubbo启动流程 1.服务提供者将服务实例化后注册到注册中心。 2.服务消费者向注册中心订阅所需的服务。 3.注册中心将服务提供者注册的服务地址推送给服务消费者&#xff0c;同时基于长链接推送变更。 4.服务消费者通过代理对象&#xff08;Proxy&#xff09;发起远…

【正版特惠】IDM 永久授权 优惠低至109元!

尽管小编有修改版IDM&#xff0c;但是由于软件太好用了&#xff0c;很多同学干脆就直接购买了正版&#xff0c;现在正版也不贵&#xff0c;并且授权码绑定自己的邮箱&#xff0c;直接官方下载激活&#xff0c;无需其他的绿化修改之类的操作&#xff0c;不喜欢那么麻烦的&#x…

【概率论与数理统计】Chapter2 随机变量及其分布

随机变量与分布函数 随机变量 随机变量&#xff1a;一个随机变量是对随机现象可能的结果的一种数学抽象 分布函数 分布函数&#xff1a; X为随机变量&#xff0c; F ( x ) F(x) F(x)定义为&#xff1a; F ( x ) P ( X ≤ x ) F(x) P(X \leq x) F(x)P(X≤x) 定义域&#…

基于Python实现多功能翻译助手(下)

为了将上述步骤中的功能增强与扩展具体化为代码&#xff0c;我们将实现翻译历史记录功能、翻译选项配置以及UI的改进。 翻译历史记录功能 import json # 假设有一个用于存储历史记录的json文件 HISTORY_FILE translation_history.json # 初始化历史记录列表 translati…

OpenHarmony实战开发-List组件的使用之设置项

介绍 在本篇CodeLab中&#xff0c;我们将使用List组件、Toggle组件以及Router接口&#xff0c;实现一个简单的设置页&#xff0c;点击将跳转到对应的详细设置页面。效果图如下&#xff1a; 相关概念 CustomDialog&#xff1a;CustomDialog装饰器用于装饰自定义弹窗。List&…

C++从入门到精通——命名空间

命名空间 前言一、命名空间引例什么是命名空间 二、命名空间定义正常的命名空间定义嵌套的命名空间多个相同名称的命名空间 三、命名空间使用加命名空间名称及作用域限定符使用using将命名空间中某个成员引入使用using namespace 命名空间名称引用引用命名空间和引用头文件有什…

Unity PS5开发 天坑篇 之 URP管线与HDRP管线部署流程以及出包介绍04

目录 一, URP管线、HDRP管线下的Unity项目部署 1. PS5开发论坛关于Unity可支持的版本说明: 2. URP管线下的项目与部署 2.1 Build PS5 URP Project 2.2 运行画面 3. HDRP管线下的项目与部署 3.1 附上可以运行的画面: 4. PS5打包方式介绍 4.1 PC串流调试模式: Build Typ…

安装mysql8.0.36遇到的问题没有developer default 选项问题

安装mysql8.0.36的话没有developer default选项&#xff0c;直接选择customer就好了&#xff0c;点击next之后通过点击左边Available Products里面的号和中间一列的右箭头添加要安装的产品&#xff0c;最后会剩下6个 安装完成后默认是启动了&#xff0c;并且在电脑注册表注册了…

【Leetcode】单链表常见题

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;Leetcode刷题 本节内容我们来讲解常见的几道单链表的题型&#xff0c;文末会赋上单链表增删查&#xff0c;初始化等代码 目录 1.移除链表元素2.链表的中间节点3.返回倒数第K个节点&#xff1a;4.环…

华为云使用指南02

5.​​使用GitLab进行团队及项目管理​​ GitLab旨在帮助团队进行项目开发协作&#xff0c;为软件开发和运营生命周期提供了一个完整的DevOps方案。GitLab功能包括&#xff1a;项目源码的管理、计划、创建、验证、集成、发布、配置、监视和保护应用程序等。该镜像基于CentOS操…

【TB作品】MSP430G2553,超声波倒车雷达PCB,单片机,超声波SR04,键盘,oled,

题目 硬件&#xff1a;MSP430G2553、 SR04超声波传感器 、3*4键盘、 无源蜂鸣器、oled显示屏 软件 1 、实时显示测量得到的距离 2、按键设置一个报警门限数值&#xff0c;直接输入数值后确认 3、低于报警门限数值就开始报警&#xff0c;而且距离越近蜂鸣器的鸣叫频率越高 程序…