軟件結構
「Librian由Python和JavaScript編寫而成,基於CEFPython前端。」——首頁是這樣說的。
Librian主程序是前後端分離的結構,類似一個在本地運行的網站。
後端運行在Python環境中,前端運行在嵌入式的Chromium中,前後端通過CEFPython提供的共享對象交互。
使用Python讀入數據、運行劇本,然後把畫面發送到前端,使用JavaScript繪製HTML畫面。
按數據在各個功能間的流動畫了這樣一幅圖,大概就是這樣的意思了。
運行簡要
Librian面板的部分
這個項目裏所有的exe都是假的,裏面的代碼都是靜態的。
無論是你生成的exe,還是Librian面板的exe,其內容都只有調用Python執行py文件。
安裝完Librian以後,點擊「Librian面板.exe」。這個入口exe會讓Python啓動Librian面板,它其實是一個獨立的帶前後端的程序,和Librian本體也沒什麼關係。
在Librian面板裏選擇工程,啓動,它會系統調用Python來啓動Librian主程序——將要運行的工程當作參數傳過去。
Librian主程序的部分
Librian主程序首先運行Librian虛擬機,這是一個運行劇本的容器。
它讀取劇本,將其編譯成一個JSON,之後用一個指針在其中逐句執行,更新自身的狀態,畫面狀態也是它的一部分。
當Librian虛擬機走到停滯點時,就會把當前的畫面狀態導出,由通信機傳給前端。在前端用鼠標單擊,會向後端發送一個步進命令,讓Librian虛擬機繼續走。
這樣就循環起來了。
如何啓動
你的Python版本應當是3.6或者3.7,在release版本中附帶的Python爲3.6版本。
之所以不能用3.5是因爲3.5的沒有f-string,不能用3.8是因爲有一些庫暫時不支持3.8。
pip install -r requirements.txt
這會安裝所有的依賴,包括librian面板和librian本體的。
python -m librian.librian面板.librian_panel
這是運行librian面板的命令。它得在最外層運行,就是 ls
的時候能看到 readme.md
的那個文件夾。
python -m librian.librian本體.librian --project {工程路徑} --config {一個JSON}
這是運行librian本體的命令。
我也不知道爲什麼當時我會在config後面設了一個JSON……什麼時候把它改掉吧……
前端的路徑在 librian\librian本體\前端
,只要進到這裏然後 webpack
就行了。
因爲我其實不會前端所以我也不知道要注意什麼……