跳转到主要内容

这是一个模板项目,旨在展示如何在manim(社区版)引擎之上创建插件,并作为插件创建的示例。

项目描述

插件模板

插件是扩展Manim核心功能的功能。这是一个模板项目,展示了如何使用遵循PEP 517兼容的构建系统(Poetry)创建和上传manim插件到PyPI。

插件创建不需要诗歌,但推荐使用,因为它提供构建隔离并确保用户可以可靠地安装您的插件,避免依赖地狱。如果您愿意,可以使用其他构建系统(例如Flit、Setuptools、Pipenv等)。

创建插件

您选择的构建系统的唯一要求是它指定了 manim.plugins 入口点

注意

插件的命名约定是添加前缀 manim-。这使用户能够轻松地在PyPi等组织中搜索插件,但这不是必需的。

安装Poetry

Poetry可以在Windows、MacOS和Linux上安装。请访问官方Poetry网站获取安装说明。您可能想查看官方文档以获取所有可用命令的列表。

设置您的插件目录结构

要创建适合Poetry的Python项目,运行

poetry new --src manim-YourPluginName 

注意

--src 是可选的,但推荐创建一个src目录,其中应包含所有插件代码。

这将创建以下项目结构:

manim-YourPluginName
├── pyproject.toml
├── README.rst
├── src
│   └── manim_yourpluginname
│       └── __init__.py
└── tests
    ├── __init__.py
    └── test_manim_yourpluginname.py 

如果您已经扩展了Manim的功能,您可以运行

cd path/to/plugin
poetry init

这将提示您有关插件的基本信息,并帮助创建和填充类似于模板中的 pyproject.toml;然而,您可能希望以类似的方式更新项目目录结构。

有关 init 命令 的更多信息,请参阅官方文档。

从现在开始,当您在插件上工作时,请确保使用虚拟环境,在项目根目录运行以下命令

poetry shell 

更新pyproject.toml

pyproject.toml 文件由Poetry和其他构建系统用于管理和配置您的项目。Manim使用包的入口点元数据来发现可用的插件。入口点组 "manim.plugins"必需的,可以按以下方式指定

[tool.poetry.plugins."manim.plugins"]
"manim_yourpluginname" = "module:object.attr"

注意

左侧表示入口点名称,应在其他插件名称中唯一。这是Manim将用于识别和处理插件的内部名称。

右侧应引用一个Python对象(即模块、类、函数、方法等),并将是插件中首先运行的代码。在此模板存储库的情况下,包名称被用作Python解释为包的 __init__.py 模块。

有关入口点的更多信息,请参阅 Python打包文档

在本地测试您的插件

poetry install

此命令将读取 pyproject.toml,安装插件的依赖项,并创建一个 poetry.lock 文件,以确保使用您的插件的每个人都获得相同的依赖项版本。确保您的依赖项正确地用版本约束标注(例如 manim:^0.1.1numpy:* 等)非常重要。同样重要的是,这些依赖项不能直接与 Manim 的依赖项冲突。如果您想更新 pyproject.toml 中指定的依赖项,使用

poetry update

有关 版本安装 命令的更多信息,请参阅官方文档。

Poetry允许添加仅针对项目开发者的依赖项。这些依赖项不会被用户安装。要将它们添加到您的项目中,更新 pyproject.toml 文件,并在后面添加依赖项部分

[tool.poetry.dev-dependencies]
pytest = "*"
pylint = "*"

《pytest》包是一个功能测试框架,您可以使用它来在manim-YourPluginName/tests目录中运行测试。您应该在这里创建测试文件,以测试您插件的行为和功能。在打包和公开代码之前,先进行开发测试是一种良好的做法,以确保您的代码按预期运行。此外,您还可以创建依赖于您插件的Manimations,这也是确保功能性的另一种好方法。

上传您的项目

默认情况下,Poetry会将包/插件注册到PyPI。您需要在那里注册一个账户来上传/更新您的插件。一旦您的插件在本地可用,请运行以下命令:

poetry publish --build

现在,您的项目应该在PyPI上可供用户通过pip install manim-YourPluginName安装,并在各自的环境中使用。

有关publish命令的更多信息,请参阅官方文档。

行为准则

我们完整的行为准则以及如何执行它,可以在我们的网站上阅读这里

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分发

manim-PluginTemplate-0.1.5.tar.gz (5.4 kB 查看哈希)

上传时间:

构建分发

manim_PluginTemplate-0.1.5-py3-none-any.whl (5.6 kB 查看哈希)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面