Linux manim安装

news/2024/4/28 5:11:30/文章来源:https://blog.csdn.net/m0_46268825/article/details/136986661

简介

根据文档可知, 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.luyixian.cn/news_show_1027009.aspx

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

相关文章

使用 .NET 和 Teams Toolkit 构建 AI 机器人、扩展 Copilot for Microsoft 365 以及更多

作者:Ayca Bas 排版:Alan Wang Teams Toolkit for Visual Studio 帮助 .NET 开发人员为 Microsoft Teams 构建、调试和发布应用程序。我们很高兴向大家宣布,Teams Toolkit for Visual Studio 2022 17.9 版本为 .NET 开发人员提供了许多令人兴…

【Qt】使用Qt实现Web服务器(六):QtWebApp用户名密码登录

1、示例 1)演示 2)登录 3)显示 2、源码 示例源码Demo1->LoginController void LoginController::service(HttpRequest& request, HttpResponse& response) {

Wagtail-基于Python Django的内容管理系统CMS实现公网访问

目录 前言 1. 安装并运行Wagtail 1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具 3. 实现Wagtail公网访问 4. 固定Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS,建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&…

鸿蒙开发实战-如何开发一个字符串加解密应用程序

介绍 本Codelab针对用户隐私安全,使用加密算法API对密码进行加密存储,模拟开发一个用户注册登录应用。实现如下功能: 实现登录、注册、登录成功页面。注册的用户数据保存到关系型数据库。登录时通过查询数据库校验用户是否存在、密码是否正…

如何高效系统地自学 Python?

导言: Python作为一门流行的编程语言,被广泛运用于数据分析、人工智能、网络应用等领域。想要系统地自学Python,并掌握其核心概念和编程技能,需要一定的方法和步骤。本文将介绍如何高效系统地自学Python,让你能够快速…

docker推拉时的数据交换详解

前言 docker用了这么久了, 有没有想过, 在执行docker push 和 docker pull命令的时候, 数据是如何传递的呢? 换句话说, 如果要实现一个镜像仓库, 针对推拉的服务, 如何实现接口呢? 根据OCI 分发规范文档 的描述, 已经对整个推拉过程中要调用的接口有描述了. 但是, 纸上学来…

Linux升级GCC

文章目录 一、安装 EPEL 仓库二、更新yum三、安装 CentOS 开发工具组四、安装scl五、安装gcc 11六、启用gcc 11七、设置永久使用 一、安装 EPEL 仓库 命令: yum install epel-release -y二、更新yum 命令: yum update -y三、安装 CentOS 开发工具组 …

蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)

目录 一、摆花 思路一: 确定状态: 初始化: 思路二: 确定状态: 初始化: 循环遍历: 状态转移方程: 二、数字三角形加强版 一、摆花 题目描述 小明的花店新开张,为了吸…

python知识点总结(十)

python知识点总结十 1、装饰器的理解、并实现一个计时器记录执行性能,并且将执行结果写入日志文件中2、队列和栈的区别,并且用python实现3、设计实现遍历目录与子目录4、CPU处理进程最慢的情况通常发生在以下几种情况下:5、CPU处理线程最慢的…

删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)

前言:有时候我们会遇到要在数组中删除指定元素,但是不能创建新的数组,那么这个时候应该如何操作呢? ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 废话不多讲,让我们…

脚本实现Ubuntu设置屏幕无人操作,自动黑屏

使用 xrandr 命令可以实现对屏幕的控制,包括调整分辨率、旋转屏幕以及关闭屏幕等。要实现 Ubuntu 设置屏幕在无人操作一段时间后自动黑屏,非待机,并黑屏后点击触摸屏可以唤醒屏幕,可以借助 xrandr 命令来实现。 首先,…

基于ssm在线云音乐系统的设计与实现论文

摘 要 随着移动互联网时代的发展,网络的使用越来越普及,用户在获取和存储信息方面也会有激动人心的时刻。音乐也将慢慢融入人们的生活中。影响和改变我们的生活。随着当今各种流行音乐的流行,人们在日常生活中经常会用到的就是在线云音乐系统…

macos配置maven

Mac Maven 安装及配置 - 知乎 官网上下载一个zip 配置环境变量vim ~/.bash_profile 我打开来看到之前配过conda的,和教程里不一样。那就在之前的配置下方添加就好了。 既然你的.bash_profile文件中已经有了一些配置,特别是Anaconda的初始化脚本&#…

鸿蒙HarmonyOS应用开发之Rawfile开发指导

场景介绍 开发者可以通过本指导了解在OpenHarmony应用中,如何使用Native Rawfile接口操作Rawfile目录和文件。功能包括文件列表遍历、文件打开、搜索、读取和关闭Rawfile。 接口说明 接口名描述NativeResourceManager *OH_ResourceManager_InitNativeResourceMan…

哪些属于“法律、行政法规另有规定,依照其规定进行评估/批准”的情况?

哪些属于“法律、行政法规另有规定,依照其规定进行评估/批准”的情况? 除《网络安全法》《数据安全法》和《个人信息保护法》确立的数据和网络安全整体体系外,企业还应当考虑其他相关法律法规的要求。 例如: ✮如根据《中华人民…

OpenHarmony实战开发-滑动容器组件Swiper的使用

介绍 本篇Codelab主要介绍了滑动容器组件Swiper的几种常见的应用场景,包括顶部导航、轮播图以及视频滑动播放。 相关概念 Swiper:滑动容器,提供子组件切换滑动的能力。Stack:堆叠容器,子组件按照顺序依次入栈&#x…

训练svm并部署树莓派

训练svm并部署树莓派 开发环境1. 准备数据集2. 训练模型3. 部署模型开发环境 vscode python 3.8 用到的库: scikit-learn==1.3.2 pickle torch pandas matplotlib 1. 准备数据集 数据为xls文件,如下格式 2. 训练模型 文件结构 执行训练 python代码 import pickle &…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络(1)理解公网(2)理解私网&#xf…

Git 常用命令速查

Git 是一个分布式版本控制系统&#xff0c;用于管理代码和其他文件。它允许您跟踪代码的更改&#xff0c;并在必要时回滚到以前的版本。 本文将介绍一些 Git 常用命令&#xff0c;帮助您快速上手 Git。 初始化 Git 仓库 git init添加文件到暂存区 git add <file_name>…

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

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