Downloads of v 0.1.1:


Last Update:

05 Dec 2020

Package Maintainer(s):

Software Author(s):

  • Manim Contributors


manim python animation math

ManimCE Install

This is not the latest version of ManimCE Install available.

  • 1
  • 2
  • 3

0.1.1 | Updated: 05 Dec 2020



Downloads of v 0.1.1:


Software Author(s):

  • Manim Contributors

  • 1
  • 2
  • 3
ManimCE Install 0.1.1

This is not the latest version of ManimCE Install available.

  • 1
  • 2
  • 3

This Package Contains an Exempted Check

Not All Tests Have Passed

Validation Testing Passed

Verification Testing Exemption:

Dependency requires reboot


Scan Testing Successful:

No detections found in any package files

Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install ManimCE Install, run the following command from the command line or from PowerShell:


To upgrade ManimCE Install, run the following command from the command line or from PowerShell:


To uninstall ManimCE Install, run the following command from the command line or from PowerShell:


Deployment Method:

📝 NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to

2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade manimce -y --source="'INTERNAL REPO URL'" --version="'0.1.1'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade manimce -y --source="'INTERNAL REPO URL'" --version="'0.1.1'" 

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Install manimce
    name: manimce
    version: '0.1.1'
    state: present

See docs at

chocolatey_package 'manimce' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '0.1.1'

See docs at

cChocoPackageInstaller manimce
    Name     = "manimce"
    Version  = "0.1.1"
    Source   = "INTERNAL REPO URL"

Requires cChoco DSC Resource. See docs at

package { 'manimce':
  ensure   => '0.1.1',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',

Requires Puppet Chocolatey Provider module. See docs at

4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved by moderator flcdrg on 18 Dec 2020.


Manim is an animation engine written in Python primarily used to create explanatory math videos such as those of 3Blue1Brown. It allows for the creation of precise animations programmatically. For more info, see the GitHub repo.

This package aims to simplify the historically painful process of setting up Manim on Windows, by including with it Python 3.8.3, ffmpeg, pycairo and sox. After installation you can execute your animation scripts with manim <file>.py.

File any issues at

NOTE: This package ships with the community version of manim, which is different from, mainly because it is developed by a team of volunteer developers. This software is currently under development and may be out of date, unstable, buggy, or not even run at all when installed.

This installs manim using pip with its dependencies.

NOTE: This is an automatically updated package. If you find it is out of date by more than a week, please contact the maintainer(s) and let them know the package is no longer updating correctly.

$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$InstallLocation = Get-ToolsLocation
$version = '0.1.1'
Install-ChocolateyZipPackage `
  -PackageName "Pango Binaries" `
  -Url "" `
  -UnzipLocation $InstallLocation `
  -Url64bit "" `
  -Checksum "A12F6C6502346462C1C3FC5AA7B1D6DA33DAB4C904E0F9EB5889CB79ACB36871" `
  -ChecksumType "SHA256" `
  -Checksum64 "599E10248B90C408C95AA3429A4DBC4137702242BDDE919A417471E38B100802" `
  -ChecksumType64 "SHA256"
Install-ChocolateyPath "$InstallLocation\pango" 'Machine'
$python = (Get-Command python).source #to lock over specific python version
if ($python -eq $null){
	$python = (Get-Command python).Definition #support powershell 4 as it has different syntax for above one
Write-Host "Found python at '$python' using it."
Write-Host "Using python version $(python --version --version)" -ForegroundColor Red
$sitePackageFolder = cmd.exe /C "`"$python`" -m site --user-site"
New-Item -ItemType Directory -Force -Path "$sitePackageFolder"
$install = @{
  "python"            = $python
  "sitePackageFolder" = $sitePackageFolder
}  | ConvertTo-Json
New-Item -ItemType Directory -Force -Path "$InstallLocation\Manim"
New-Item "$InstallLocation\Manim\installInfo.json" -ItemType file -Value $install #save install info

Write-Host "Upgrading pip and install Wheel" -ForegroundColor Yellow
& "$python" -m pip install --upgrade pip wheel

Write-Host "Install Numpy v1.19.3 to avoid problems"
& "$python" -m pip install --upgrade numpy==1.19.3

Write-Host "Preparing Install" -ForegroundColor Yellow
& "$python" "$toolsDir\" "$InstallLocation\pango"

$env:PATH = "$InstallLocation\pango;$env:PATH"
Write-Host "Installing Manim to $InstallLocation\Manim"
& "$python" -m pip install cffi --no-cache
& "$python" -m pip install pangocffi<0.7.0 --no-cache --no-binary :all:
& "$python" -m pip install pangocairocffi<0.4.0 --no-cache --no-binary :all:
& "$python" -m pip install "manimce==$version" --no-cache --compile --prefix="$InstallLocation\Manim" --no-warn-script-location --log="pip.log"

Write-Host "Making $python detect the Manim"
New-Item -ItemType Directory -Force -Path "$sitePackageFolder"
$pthFilePath = "$sitePackageFolder\manimce.pth"
$pthFileContent = "$InstallLocation\Manim\Lib\site-packages"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($pthFilePath, $pthFileContent, $Utf8NoBomEncoding)

Copy-Item "$toolsDir\" -Destination "$InstallLocation\Manim" -Force

Write-Host "Create a Batch File for Running Manim"
New-Item "$toolsDir\manim.bat" -ItemType file -Value "`@echo off
`"$python`" `"$InstallLocation\Manim\`" `"$InstallLocation\pango`"
`"$InstallLocation\Manim\Scripts\manim.exe`" %*"

New-Item "$toolsDir\manimce.bat" -ItemType file -Value "`@echo off
`"$python`" `"$InstallLocation\Manim\`" `"$InstallLocation\pango`"
`"$InstallLocation\Manim\Scripts\manimce.exe`" %*"

Install-BinFile `
  -Name "manim" `
  -Path "$toolsDir\manim.bat"

Install-BinFile `
  -Name "manimce" `
  -Path "$toolsDir\manimce.bat"

$files = get-childitem $InstallLocation -include *.exe -recurse
foreach ($file in $files) {
  #Remove unwanted files from been added to path.
  New-Item "$file.ignore" -type file -force | Out-Null
$ErrorActionPreference = 'Stop';
$toolsPath = Split-Path $MyInvocation.MyCommand.Definition
$InstallLocation = Get-ToolsLocation
. $toolsPath\helper.ps1
Uninstall-ChocolateyPath "$InstallLocation\pango"
$installInfo = Get-Content "$InstallLocation\Manim\installInfo.json" | ConvertFrom-JSON
Uninstall-BinFile `
  -Name "manim" `
  -Path "manim.exe"
Uninstall-BinFile `
  -Name "manimcm" `
  -Path "manimcm.exe"
Remove-Item `
  -Path "$($installInfo.sitePackageFolder)\manimce.pth" `
if (!(Test-Path function:\Uninstall-ChocolateyPath)) {
  function Uninstall-ChocolateyPath {
      [System.EnvironmentVariableTarget] $pathType = [System.EnvironmentVariableTarget]::User

    Write-Debug "Running 'Uninstall-ChocolateyPath' with pathToRemove: `'$pathToRemove`'"

    # get the PATH variable
    $envPath = $env:PATH
    if ($envPath.ToLower().Contains($pathToRemove.ToLower())) {
      Write-Host "The PATH environment variable already contains the directory '$pathToRemove'. Removing..."
      $actualPath = Get-EnvironmentVariable -Name 'Path' -Scope $pathType -PreserveVariables

      $newPath = $actualPath -replace [regex]::Escape($pathToRemove + ';'),'' -replace ';;',';'

      if (($pathType -eq [System.EnvironmentVariableTarget]::Machine) -and !(Test-ProcessAdminRights)) {
        Write-Warning "Removing path from machine environment variable is not supported when not running as an elevated user!"
      } else {
        Set-EnvironmentVariable -Name 'Path' -Value $newPath -Scope $pathType

      $env:PATH = $newPath
import argparse
import ctypes
import logging
import os
from pathlib import Path

log_file = Path(__file__).parent / "load_dll.log"
    format="%(levelname)s - %(message)s", filename=str(log_file), level=logging.DEBUG
parser = argparse.ArgumentParser()
    "dll_location", help="The folder which contains the dll files to load."
args = parser.parse_args()

dll_location = Path(args.dll_location)

logging.debug(f"Adding {dll_location.absolute()} to PATH varible.")
os.environ["PATH"] = f"{dll_location.absolute()}{os.pathsep}{os.environ['PATH']}"

# cairo deps here
necessary_files = [
# for libpango-1
necessary_files += [
# for libpangocairo-1
necessary_files += [
for file in necessary_files:
    fp = str((dll_location / file).absolute())
    logging.debug(f"Loading {fp}")
    except OSError:
        logging.error(f"OSError for {fp}")
for file in dll_location.glob("libpango*.dll"):
    logging.debug(f"Loading {file}")
    except OSError:
        logging.error(f"OSError for {file}")

Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.

This package is done by one of the team Members of ManimCommunity.
The included `.py` scripts are tend to help in the installing process
and prevent failures, as reported by many users.

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
Manim Install 0.15.2 811 Tuesday, April 26, 2022 Approved
Manim Install 1674 Saturday, March 12, 2022 Approved
Manim Install 0.15.1 123 Wednesday, March 9, 2022 Approved
Manim Install 0.15.0 441 Sunday, February 27, 2022 Approved
Manim Install 0.14.0 1832 Saturday, January 8, 2022 Approved
Manim Install 957 Tuesday, December 14, 2021 Approved
Manim Install 0.13.1 316 Sunday, December 5, 2021 Approved
Manim Install 0.13.0 27 Saturday, December 4, 2021 Approved
Manim Install 938 Monday, November 8, 2021 Approved

Discussion for the ManimCE Install Package

Ground Rules:

  • This discussion is only about ManimCE Install and the ManimCE Install package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or ManimCE Install, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus