以前說好的 「Odoo 基礎教程系列」終於來了(撒花)~剛過完年從新投入到工做中,一會兒事情有點多都要忙不過來了,只能在天天晚上下班回家以後慢慢填坑,各位小夥伴久等了!css
在開始以前,這裏要先跟你們知會一聲,在這篇教程以及後面的教程中,都將默認開發環境是 macOS
或 Ubuntu
,由於在 Windows
中開發老是能遇到未知的坑,處理起來每每非常耗費時間精力,這裏不去爭論系統的優劣,若是沒有 Windows
外的其餘系統的小夥伴,可是又想學習本教程的內容,推薦大家使用虛擬機安裝一個 Ubuntu
做爲開發環境 :)node
OK,下面正式開始本系列教程的第一篇內容。python
在開始幹活前,首先要把工具給準備好,那咱們進行 Odoo
開發,須要有哪些工具呢?下面就把最最基礎的羅列出來:git
Python 3.5+
PostgreSQL
Node.js
LESS
Git
首先固然少不了 Python 啦,在 Odoo 10.0 版本以前,使用的都是 Python 2,在 11.0 開始,官方就推薦使用 Python 3.5+,固然使用 Python 3 也是大勢所趨,大膽地切換到 3 吧!github
若是你當前使用的系統沒有安裝 Python 3.5+,你能夠按照下面的步驟輕鬆完成安裝:正則表達式
# 若是你使用的是 Mac brew install python3 # Ubuntu 用戶 sudo apt-get update sudo apt-get install python3
而後是強大的數據庫 PostgreSQL
,這個數據庫是 Odoo 官方欽定使用的,不能像 Django
那樣能夠根據喜愛用各類庫。Mac 用戶能夠選擇經過官網下載 APP 並跟隨步驟進行安裝或者使用 Homebrew
進行安裝並啓動:sql
brew install postgresql brew services start postgresql
若是你是 Ubuntu 用戶,則能夠經過如下命令進行安裝:shell
sudo apt-get update sudo apt-get install postgresql postgresql-contrib
而後執行 psql -V
查看版本號,若是沒有錯誤而且輸出了版本號,則說明已經成功安裝並啓動,若是出現如下錯誤信息:數據庫
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
能夠參考 stackoverflow 上的這個回答進行除錯。npm
安裝完畢以後,咱們先建立一個數據庫的超級用戶,在以後運行 Odoo 初始化數據庫的時候將會用上:
sudo createuser --superuser username
Odoo 中有不少的樣式文件是使用 LESS
寫的,在運行的時候 Odoo 會將這些樣式文件轉換成 CSS 文件,具體細節咱們沒必要深究。咱們須要先安裝好 Node.js
後才能安裝 LESS
,繼續跟着步驟把它們安裝好。
Ubuntu 13.10 及以前的版本須要手動安裝 Node.js:
wget -qO- https://deb.nodesource.com/setup | bash - sudo apt-get install -y nodejs
Mac用戶直接使用 Homebrew 進行安裝:
brew install node
安裝好 Node.js 以後接着安裝 LESS:
sudo npm install -g less
就是這麼簡單,咱們已經把 Node.js 和 LESS 都安裝好了,若是感興趣的話,能夠去官網瞭解一下:
Git
是個很是好用的版本管理工具,平常工做已經離不開它了 :) 在大部分系統中都已經預裝好了,若是不知道當前系統中有沒有預裝 git,不妨在終端裏輸入 git --version
查看一下,若是提示未找到命令,則須要手動安裝,過程一樣十分簡單:
# Ubuntu sudo apt-get update sudo apt-get install git # Mac brew install git
完美!到這裏咱們已經把目前所須要的工具都準備好了,這才只是個開始,不過別擔憂,接下來也不會很難。
熟悉 Python
開發的小夥伴應該都瞭解或者使用過各類虛擬環境,如 virtualenv
和 virtualenvwrapper
等,在這系列的教程中,咱們將用 Pipenv
來建立和管理項目的虛擬環境和依賴包。
若是你還沒了解過 Pipenv
,那下面就來簡單瞭解一下。Pipenv
是 Python 項目的依賴管理器,相似於 Node.js
的 npm
和 yarn
等。它會自動爲項目建立和管理一個虛擬環境,當你添加或刪除包時,它也會自動地在 Pipfile
中添加或刪除對應的包信息。
在終端執行如下命令進行安裝:
pip install --user pipenv
選項 --user
表示安裝在用戶目錄下,這樣作能夠防止破壞任何系統範圍的包。安裝好後,在 Shell 中執行 pipenv --version
查看版本信息,應該會看到輸出以下信息(版本號可能會不一樣):
pipenv, version 10.0.0
若是提示未找到 pipenv,則須要手動將用戶基礎目錄下的 /bin
添加到 PATH
中。使用 python -m site --user-base
找到用戶基礎目錄的路徑,而後執行:
export PATH="/Users/name/Library/Python/3.6/bin:$PATH"
記得將 /bin:$PATH
前的路徑替換爲你找到的路徑。
注:若是你使用的是 Zsh
,編輯 ~/.zshrc
並將 export PATH=/Users/name/Library/Python/3.6/bin:$PATH
添加到文件底部,不要忘了替換路徑 :)
再次執行 pipenv --version
,此時應該能夠成功查看到版本信息了。
Odoo
有兩個版本,一個是社區版,一個是企業版,社區版是開源免費的,企業版固然是相應須要收費的,兩個版本會有一些差別,可是這些問題不大,咱們拉取官方倉庫的社區版源碼:
git clone [https://github.com/odoo/odoo.git](https://github.com/odoo/odoo.git) -b 11.0 --depth=1
由於衆所周知的網絡問題可能速度會比較慢,耐心等待拉取完成後,進入源碼目錄 cd odoo
,能夠看到第一層目錄結構以下:
$ tree -L 1 . ├── CONTRIBUTING.md ├── COPYRIGHT ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── addons ├── debian ├── doc ├── odoo ├── odoo-bin ├── requirements.txt ├── setup ├── setup.cfg └── setup.py
很好,已經萬事俱備了,還差一點咱們就能夠成功運行 Odoo 了,事不宜遲,繼續咱們的教程。
編輯文件 requirements.txt
,刪除最後一行的 pypiwin32 ; sys_platform == 'win32'
並保存(若是你的開發環境是 Windows,你應該刪除的是帶有 sys_platform != 'win32'
的行),而後建立虛擬環境(使用 Python 3)並安裝相關依賴:
pipenv install --three
選項 --three
用於指定初始化環境所使用的 Python
的版本爲 Python3,若是你在其餘項目中須要使用 Python2 初始化環境,能夠將該選項指定爲 --two
。
由於目錄下存在文件 requirements.txt
,故 pipenv
會將其轉換成 Pipfile
,而且會自動安裝裏面列出的全部依賴。在通過可能有一點點漫長的等待以後,終於安裝完畢啦!此時應該會看到這樣的提示信息:
To activate this project's virtualenv, run the following: $ pipenv shell
來試試看執行 pipenv shell
激活虛擬環境,而後運行 python
,嘗試導入幾個包看看依賴包是否已經成功安裝:
>>> import jinja2 >>> import lxml >>> import qrcode
若是沒有報錯,就說明咱們的環境已經準備好了,接下來咱們要嘗試運行 Odoo 的服務了,緊不緊張,刺不刺激,繼續下一步吧!
先建立一個數據庫,用於 Odoo 初始化數據使用:
createdb demo -U username
還記得前面咱們建立了一個超級用戶嗎?請不要忘記把命令裏的 username
替換成你建立的那個用戶名哦 XD
在 Odoo 根目錄下執行如下命令運行 Odoo 服務:
./odoo-bin --addons-path=addons --db-filter=^demo$ -d demo
這裏解釋一下上面這條命令裏各個選項的意義:
--addons-path
指定要加載的模塊目錄--db-filter
用於強制指定使用的數據庫,支持正則表達式,這個選項的具體用途咱們在後面涉及到的話會再次講解,如今不理解也不要緊-d
用於指定使用的數據庫命令裏的 demo
就是咱們前面建立的數據庫的名稱,若是你不是用的這個名稱,記得替換成你建立的數據庫名。
在一個新的數據庫中初次運行 Odoo,它將會進行初始化,這裏須要稍微等待一小會兒,當你看到如下字樣時,就說明 Odoo 的服務已經成功運行並能夠訪問了:
2018-02-28 12:34:51,398 1561 INFO demo odoo.modules.loading: Modules loaded.
如今能夠打開瀏覽器,訪問 http://localhost:8069/
這個地址,若是能夠看到登陸界面,恭喜你,你已經成功搭建好了運行環境了!
輸入賬號和密碼(默認是 admin
)登陸,就會跳轉到後臺界面,如今暫時什麼都沒有,默認打開的是 Apps 應用安裝模塊的頁面,就是文章開頭所展現的那張圖片裏的那個界面,這裏看到的這些都是 Odoo 自帶的一些基礎應用,你能夠隨便裝幾個應用,如 Blogs
和 Live Chat
等試試看 :)
這個系列第一篇正式的教程,就到這裏了,若是遇到什麼問題儘管在評論中提出來,我會盡可能協助你們解決的。礙於 996 的上班時間,接下來的教程更新可能會有點慢,但願各位小夥伴能夠耐心等待 :)
而後就是,開了個微信羣,方便交流,雖然貌似好像並無什麼人願意加進來?加好友時備註加羣,接受後會拉進羣內。