這篇文章的目的是給出另外一個關於如何讓 Manim 使用 Python 3.7 在 Mac 上 工做的賬戶,僅此而已。我花了幾個使人沮喪的夜晚試圖讓事情發揮做用,我想把個人經驗添加到 Manim 不斷增加的資源中。我強烈建議將此帖與 Todd Zimmerman 的博客 結合使用,學習如何使用 Grant Sanderson 的代碼。html
我提早道歉包含了許多更簡單的步驟,但這篇文章旨在 讓沒有編程背景的人能夠訪問 Manim。 我認爲一旦將 Manim 安裝到您的計算機上,Manim 相對容易學習,因此我但願那些沒有太多編程背景的人不會由於讓這個庫工做而感到沮喪並且能夠專一於作出很棒的內容。python
若是按順序進行,這個過程應該相對簡單。通常過程將涉及:git
首先須要的是程序包管理器 Homebrew,它將幫助咱們安裝一些 pip 沒法正確安裝的軟件包。您能夠經過打開終端並運行如下代碼行來安裝 Homebrew:github
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製代碼
安裝 Homebrew 後,能夠經過運行安裝 Python:編程
brew install python3
複製代碼
若是在此過程當中出現任何問題,我建議您轉到此視頻:ruby
一旦安裝了 python,咱們須要得到一些軟件包。返回終端並運行如下代碼行,以獲取安裝所需的軟件包(cairo,pkg-config,virtualenv)。ide
brew install cairo
brew install pkg-config
pip3 install virtualenv
複製代碼
virtualenv 是得到 Manim 庫以前惟一絕對須要的軟件包,可是我我的在安裝或推出將上述項目安裝到虛擬環境中時遇到了麻煩(稍後會介紹)。這就是爲何我建議在繼續本教程以前將它們直接安裝到您的系統上。wordpress
下一步須要花費大量的試驗和錯誤來解決,特別是由於 3b1b 的 GitHub 上沒有文檔。Manim 使用不一樣的 LaTeX 子包,所以 pip3 install latex
可能沒法得到所需的全部必需子包。我認爲主要的問題是許多人已經在他們的計算機上使用了不一樣形式的 LaTeX,因此當你認爲你已經掌握了全部東西時,很難確保一切都在那裏。通過屢次安裝和卸載後,我發現 MacTex 的完整安裝能夠解決問題,能夠在這裏找到:函數
確保你安裝了全部東西 - 我嘗試了幾回快捷方式,並無結束工做。
如今已經安裝了 LaTeX,您能夠繼續開始獲取 Manim 庫。一般,在虛擬環境中運行項目是一種很好的作法,這樣您就能夠輕鬆控制全部文件和其餘軟件包的安裝位置。如下是我推薦的步驟:
建立您但願存儲 Manim 庫的文件夾。我在個人主目錄中建立了一個名爲 animation 的文件夾:
前往 Manim GitHub 並獲取要克隆的 URL。複製後,前往終端並導航到剛剛建立的文件夾。導航到終端內的特定文件夾很是簡單。您能夠經過鍵入如下內容找到當前目錄(當前文件路徑):
pwd
複製代碼
您能夠經過鍵入如下內容找到當前目錄中的文件夾:
ls
複製代碼
而且您能夠經過運行如下命令更改目錄以輸入其中一個文件夾:
cd folder/subfolder/subsubfolder
複製代碼
如今在 Terminal 中運行如下命令將 Manim 存儲庫克隆到您的文件夾中:
git clone https://github.com/3b1b/manim.git
複製代碼
您的文件夾如今看起來應該是這樣的(我將文件夾重命名爲 manim37):
如今咱們須要創建一個虛擬環境。基本上這將是在 Manim 文件夾中從新安裝單獨版本的 Python3。在虛擬環境中運行時,您將可以運行 Python 並將軟件包安裝到該特定文件夾而不是整個系統。這些一般用於確保能夠逐個項目地維護特定版本的包。
要建立虛擬環境,請轉到終端並導航到 Manim 文件夾。如今繼續並將如下命令運行到終端:
virtualenv venv
複製代碼
virtualenv
指的是咱們以前安裝的軟件包。venv
是您將安裝虛擬環境的文件夾的名稱。
如今,若是您查看 Manim37 文件夾,應該有一個名爲 venv
的文件夾。若是沒有,而且 venv
文件夾在其餘地方結束,您只需單擊並將其拖動到 Manim37
文件夾便可。
如今您已經設置了虛擬環境,如今須要從終端輸入。確保您當前的工做目錄是 Manim37,而後運行:
source venv/bin/activate
複製代碼
您的終端線將更改,而且 (venv) 將出如今提示的開頭:
使用 Manim 所作的一切都須要在這個虛擬環境中完成,這意味着安裝其餘軟件包,運行動畫代碼等。若是從新打開終端,則必須再次激活虛擬環境文件夾。您能夠經過執行 deactivate
隨時退出虛擬環境。
如今咱們須要得到更多的軟件包:sox,ffmepg,latex,pycairo 等。繼續運行如下各項:
pip3 install sox
pip3 install ffmpeg
pip3 install latex
pip3 install pycairo
pip3 install -r requirements.txt
複製代碼
最後一行代碼將運行所需的更多軟件包的安裝。你能夠看看的 requirements.txt 的 Manim37 文件夾內的文件,看看到底須要什麼,可是一旦這個過程完成後,你將不須要任何更多的包。
如今已經下載了全部軟件包,咱們能夠開始修復一些與您的計算機相匹配的代碼。首先須要作的是在 Manim37 目錄中添加一個名爲 「output」 的文件夾。
而後咱們須要更改位於 Manim37 文件夾中的文件 constants.py 中的一行代碼。
打開後,轉到第 23 行,找到 「Dropbox(3Blue1Brown)/ 3Blue1Brown Team Folder」 的行
咱們須要更改此行以匹配剛剛建立的 輸出 文件夾。在個人例子中,我用 「animation/manim37/output」 替換了那一行。您應該用您的文件路徑替換它(請記住,上面一行中的 〜
是主目錄的文件路徑的縮寫)。
如今咱們須要運行一個快速測試來查看某些動畫是否正常工做。仍在虛擬環境中,運行:
python3 extract_scene.py example_scenes.py SquareToCircle -pl
複製代碼
這應該會啓動 QuickTime 來運行您的示例視頻。若是您此時遇到問題,我建議您搜索 Manim GitHub 的 問題 部分。
全部形狀和動畫都應該在這一點上起做用。可是,要使單詞起做用,咱們須要對幾個文件進行一些修改。這些變化對我有用。
打開 utils/tex_file_writing.py 並向下滾動到最後兩個函數,而後更改它們,使它們看起來像這樣(對於截圖感到抱歉 - 目前在保持格式化的同時發佈代碼時出現問題):
須要修改的最後一個文件是 tex_template.tex。繼續前進,讓你看起來像:
既然已經進行了這些更改,請繼續嘗試運行:
python3 extract_scene.py example_scenes.py WriteStuff -pl
複製代碼
但願全部人都爲你工做!
若是有問題,我建議在 3b1b 的 GitHub 上發佈一個問題。那裏有更多知識淵博的人,而且經過綜合幫助你解決問題的機會更大。