1. 程式人生 > 實用技巧 >在Ubuntu上安裝Odoo時遇到的問題

在Ubuntu上安裝Odoo時遇到的問題

這兩天開始看《Odoo快速入門與實踐 Python開發ERP指南》(劉金亮 2019年5月第1版 機械工業出版社)。試著在Ubuntu上安裝Odoo,遇到很多問題,通過在網上查詢,都已解決。這裡把這些解決方法彙集了一下,一方面是整理一下自己的思路,另一方面也是希望能為遇到同樣問題的朋友提供一個解決思路。

這本書中的環境是:Ubuntu 16,Python3.5。 我使用的環境為Ubuntu18,Python3.8

首先建立Python虛擬環境,這其中也遇到一些問題,但可以通過在網上查詢資料解決,這裡就不再贅述。

接著是更新依賴包,並使用git克隆Odoo原始碼。

1. 按照原書2.1.3節安裝Odoo依賴包。首先啟用虛擬環境,然後書中的程式碼安裝依賴包:

  1 $ sudo pip3 install Babel ......

注意:此命令安裝的是所有依賴包的最新版本

2. 安裝PostgreSQL資料庫

  1 sudo apt-get install -y postgresql

安裝完成後,建立資料庫使用者。特別注意,由於PostgreSQL資料庫的使用者與Ubuntu系統的使用者一致(我自己理解),所以原書中在前面各步驟開始前建立了一個odoo的Ubuntu使用者,並切換到odoo使用者(即用odoo使用者登入Ubuntu),之後的所有步驟都以odoo身份執行,所以此處建立的也是名為odoo的PostgreSQL資料庫使用者。但我沒有注意到書中使用者切換的操作,所以在建立資料庫使用者時,我以當前登入Ubuntu的使用者名稱來建立資料庫使用者,後面的操作也是可以正常執行的。

一般來說,在Unix/Linux中,對於一些服務類大型應用(如資料庫管理系統)都會建立對應的系統使用者(如Oracle會建立Oracle的系統使用者),對該使用者充分授權,並在該使用者下安裝對應的應用,這樣是基於許可權和安全考慮。但現在是學習,也是可以使用一個使用者來安裝的。

3. 安裝中文字型及報表列印需要的wkhtmltopdf

4. 啟動Odoo服務

Odoo服務可正常啟動,但在瀏覽器中訪問時,先後出現以下問題:

錯誤:

TypeError: el is undefined

http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4729


追溯:
computeFloatOuterWidthWithMargins@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4729:90
_adapt@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4728:477
later@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:142:255


錯誤:
TypeError: el is undefined

http://192.168.*.*:8069/web/static/src/js/core/dom.js:671
追溯:
computeFloatOuterWidthWithMargins@http://192.168.*.*:8069/web/static/src/js/core/dom.js:671:24
_adapt@http://192.168.*.*:8069/web/static/src/js/core/dom.js:660:35
later@http://192.168.*.*:8069/web/static/lib/underscore/underscore.js:821:25

在StoackOverflow上找到一個解決方案:sudo pip3 install - r requirement.txt,於是按照執行,但安裝過程中報了一堆錯誤,主要有兩個方面:

1) 在requirement.txt檔案中依賴包指定的版本與前面原書中指定的Odoo依賴包的版本有衝突,後者的版本高於前者;

2)關於psycopg2包的安裝報錯

解決:

對於1)中的錯誤,我的做法是將requirement.txt中包的版本指定為最新版本號(要注意安裝條件中對環境的指定)

對於2)中的錯誤,按網上查到的解決方法,安裝psycopg2-binary。


通過上面的措施,解決問題,再次啟動Odoo服務,在瀏覽器中可以正常顯示了。