相信很多人都知道3Blue1Brown,這是一個由斯坦福大學的數學系學生Grant Sanderson 創建的YouTube 頻道。該頻道從獨特的視覺角度解說高等數學,內容包括線性代數、微積分、神經網絡、黎曼猜想、傅里葉變換以及四元數等等。
本人通過該視頻頻道獲得了很多啟發,同時也對其精良的視頻制作技術產生了濃厚的興趣。
偶然的機會,得知其在Github上有專門開設了一個視頻制作引擎:manim。
所以,突然想嘗試用一下該基于Python的可視化引擎,如果可以實現功能,以后就可以根據自己的需要利用該引擎進行動畫演示。
網上找了一些相關的文章,有的寫得很好,但是因為該開源代碼庫更新頻繁,所以以前的配置教程往往會有過時的情況。現在最新的版本是基于Python 3的,以前的基于Python 2.7的教程已經不再適用于當前代碼。所以在安裝過程中,遇到了不少新問題,在解決的過程中記錄了這些新問題的解決方法。并形成此文。(測試于2019年6月)
在配置前首先得安裝Python 3,這個安裝過程在此處不再贅述。建議通過Anaconda進行安裝,而不是直接安裝Python。這里的演示也是基于Windows 10 系統,在安裝Anaconda的基礎上完成的。Anaconda的下載地址為:
建議選擇安裝Python 3.7 version,具體按照步驟網上有很多。
除此之外,還要下載:
1. manim鏈接 or download,然后Download ZIP,解壓后到一個合適的位置(路徑中不要包含中文?。纯墒褂茫ù藶閙anim引擎所包含的全部文件);
2. miktex鏈接 是一種排版語言,主要用于處理視頻中包含的文字信息);
3. ffmpeg鏈接
4. dvisvgm鏈接 ,64位的用戶請注意選擇64位的安裝包,下載好后,放到一個合適的路徑下(路徑中不要包含中文?。?,解壓后將../dvisvgm/目錄添加進用戶環境變量(見后圖)(此為可以將dvi轉換為高質量svg的軟件)。
添加進用戶環境變量的方法
右擊“我的電腦”圖標-“屬性”-左邊的”高級系統設置”
選擇”環境變量”-“用戶變量”中的”Path”-“編輯”-“新建”。
然后把解壓后的FFmpeg的bin文件夾的路徑和dvisvgm的dvisvgm文件夾路徑添加進去,并選擇確定。然后進行環境測試,看各個依賴環境是否都配置妥當(注意:按照個人安裝的實際路徑進行添加,圖中只是一個參考)。
在Anaconda Prompt 中通過命令行配置并測試
具體方法是:右擊”Anaconda Prompt”-“更多”-“以管理員身份運行”

這一步很重要,因為如果不以管理員身份運行很可能帶來權限不夠的情況,妨礙后期的各個程序包的安裝。
在命令行中分別輸入下列命令,并回車運行:
python -version

latex -version

xelatex -version

ffmpeg --version

dvisvgm --version

如果都有類似于上面的版本提示,則說明依賴的軟件安裝成功,否則,回去檢查安裝或用戶路徑的添加是否正確。
打開前面下載并解壓后的manim文件夾,在其中添加一個空白文件夾“media”,并新建一個名字為“MEDIA_DIR.txt”的.txt文件。

在”MEDIA_DIR.txt”文件中輸入剛剛新建的”media”文件夾所在的路徑并保存。

回到Anaconda Prompt中,輸入:
cd
該命令的意思是:跳轉到manim的根目錄中(注意:按照個人安裝的實際路徑進行添加,圖中只是一個參考)。

然后輸入(手機上如果看不到此處的全部代碼,請在代碼處左右滑動或在電腦上打開該文章):
python -m pip install -r requirements.txt
這個安裝過程中常見的問題是“pycairo”這個包安裝異常。

解決方法是先輸入并運行:
conda install vs2015_runtime

然后再單獨安裝“pycairo”這個包,輸入并運行:
conda install pycairo

現在,基本的東西都安裝好了。嘗試著運行一下測試命令:
python -m manim example_scenes.py SquareToCircle -pl
在運行的時候可能會有形如:ModuleNotFoundError: No module named的錯誤提示,這說明還缺少程序包。請運行命令(注意:改為對應缺失的程序包的名字,命令中不含括號或引號):
pip install
一個特例是readline包,如果提示“ModuleNotFoundError: No module named ‘readline’”,則需要輸入的是:
pip install pyreadline
安裝好提示缺少的包后再輸入并運行:
缺什么程序包就按照上面的方法添加該程序包,直到命令可以通過:

此時打開media文件夾將找到生成的視頻,表示的是正方形變成圓形的動畫演示:

同理,輸入命令:
python -m manim example_scenes.py WarpSquare -pl
得到一個向復平面映射的動畫:

輸入命令:
python -m manim example_scenes.py WriteStuff -pl

此過程中會提示安裝一些程序包,為了加快編譯進度,可以點擊去掉那個復選框的勾選,默認安裝所有需要的程序包。得到的是具有3b1b經典風格的文字動畫:

輸入命令:
python -m manim example_scenes.py UpdatersExample -pl

將得到一個數據隨圖形位置變化的動畫:

是不是手癢了?23333。
(注:本教程僅針對Windows 10 64位系統)