Skip to content

軟件結構

「Librian由Python和JavaScript編寫而成,基於CEFPython前端。」——首頁是這樣說的。

Librian主程序是前後端分離的結構,類似一個在本地運行的網站。
後端運行在Python環境中,前端運行在嵌入式的Chromium中,前後端通過CEFPython提供的共享對象交互。

使用Python讀入數據、運行劇本,然後把畫面發送到前端,使用JavaScript繪製HTML畫面。

結構.png

按數據在各個功能間的流動畫了這樣一幅圖,大概就是這樣的意思了。

運行簡要

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 就行了。

因爲我其實不會前端所以我也不知道要注意什麼……