摘要:安裝好后,在中執行查看版本信息,應該會看到輸出如下信息版本號可能會不同如果提示未找到,則需要手動將用戶基礎目錄下的添加到中。相關文章基礎教程系列第篇開天坑啦
之前說好的 「Odoo 基礎教程系列」終于來了(撒花)~剛過完年重新投入到工作中,一下子事情有點多都要忙不過來了,只能在每天晚上下班回家之后慢慢填坑,各位小伙伴久等了!
在開始之前,這里要先跟大家知會一聲,在這篇教程以及后面的教程中,都將默認開發環境是 macOS 或 Ubuntu,因為在 Windows 中開發總是能遇到未知的坑,處理起來往往很是耗費時間精力,這里不去爭論系統的優劣,如果沒有 Windows 外的其他系統的小伙伴,但是又想學習本教程的內容,推薦你們使用虛擬機安裝一個 Ubuntu 作為開發環境 :)
OK,下面正式開始本系列教程的第一篇內容。
基本準備在開始干活前,首先要把工具給準備好,那我們進行 Odoo 開發,需要有哪些工具呢?下面就把最最基礎的羅列出來:
Python 3.5+
PostgreSQL
Node.js
LESS
Git
安裝 Python3首先當然少不了 Python 啦,在 Odoo 10.0 版本之前,使用的都是 Python 2,在 11.0 開始,官方就推薦使用 Python 3.5+,當然使用 Python 3 也是大勢所趨,大膽地切換到 3 吧!
如果你當前使用的系統沒有安裝 Python 3.5+,你可以按照下面的步驟輕松完成安裝:
# 如果你使用的是 Mac brew install python3 # Ubuntu 用戶 sudo apt-get update sudo apt-get install python3安裝 PostgreSQL
然后是強大的數據庫 PostgreSQL,這個數據庫是 Odoo 官方欽定使用的,不能像 Django 那樣可以根據喜好用各種庫。Mac 用戶可以選擇通過官網下載 APP 并跟隨步驟進行安裝或者使用 Homebrew 進行安裝并啟動:
brew install postgresql brew services start postgresql
如果你是 Ubuntu 用戶,則可以通過以下命令進行安裝:
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 上的這個回答進行除錯。
安裝完畢之后,我們先創建一個數據庫的超級用戶,在之后運行 Odoo 初始化數據庫的時候將會用上:
sudo createuser --superuser username安裝 Node.js 和 LESS
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 都安裝好了,如果感興趣的話,可以去官網了解一下:
Node.js 官網
LESS 官網
安裝 GitGit 是個非常好用的版本管理工具,日常工作已經離不開它了 :) 在大部分系統中都已經預裝好了,如果不知道當前系統中有沒有預裝 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 源碼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先創建一個數據庫,用于 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 的上班時間,接下來的教程更新可能會有點慢,希望各位小伙伴可以耐心等待 :)
然后就是,開了個微信群,方便交流,雖然貌似好像并沒有什么人愿意加進來?加好友時備注加群,接受后會拉進群內。
相關文章「Odoo 基礎教程系列」第〇篇——開天坑啦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44561.html
摘要:而模塊化則是區別于大多數傳統的最強特性,基于這一特性,開發人員可以輕松地繼承和擴展任何現有的模塊,可以輕松地針對不同的需求進行功能定制。相關文章基礎教程系列第一篇環境準備 showImg(https://segmentfault.com/img/remote/1460000013290099?w=1280&h=856); 大家新年好!給大伙拜個早年,今天也是情人節呢,這么好的日子,卻一...
摘要:雖然這是個很簡單的應用,但是希望大家可以動手一起操作,從最簡單的開始上手學習如何使用這個框架。則是在和之間,負責響應用戶操作,從中獲取數據進行處理并返回到中。 showImg(https://segmentfault.com/img/bV66tE?w=728&h=410); 在第一篇教程發布之后差不多一個月的今天,終于完成了第二篇內容,這個發布周期拖得實在是有點太長了,我都覺得不好意思...
摘要:今天這個系列教程即將迎來它的最后一篇內容了,我們將要來學習中權限相關的內容。在的權限管理體系中,同樣也有用戶組這一概念的存在,和其他框架如可以說大同小異。通常和權限相關的內容,我們都會在模塊的目錄下進行定義,記錄集規則的定義自然也不例外。 在今年的情人節(2018.02.14)那天,我寫了一篇博客說即將要開一個坑,也就是大家在看的這個系列的教程。今天這個系列教程即將迎來它的最后一篇內容...
摘要:現在我們來給待辦事項增加一個緊急程度的字段,用來表示當前任務的優先級。此處我們還給這個字段添加了默認值,表示當一個待辦事項被創建后,如果沒有指定緊急程度,將默認是待辦狀態。這篇教程中的代碼同樣會更新在我的倉庫中。 showImg(https://segmentfault.com/img/bVbfv3E?w=1330&h=912); 在這篇教程里我們將會了解到 Odoo 模型里的一些其他...
摘要:一般情況下都是在中繼承后在其末尾添加相關資源路徑除了資源需要引入外,我們編寫的頁面模板也許要引入,打開并在底部添加我們的自定義頁面文件大功告成,一個最簡單的自定義頁面已經完成了,安裝模塊然后運行看看效果吧。 前些天群里的小伙伴問了些關于在 Odoo 管理后臺自定義頁面和 Widget 的問題,那我就來寫一篇簡短的內容,教大家如何創建自定義頁面并引用第三方庫。如果大家有看我之前寫的基礎教...
閱讀 1847·2021-11-22 15:25
閱讀 3912·2021-11-17 09:33
閱讀 2507·2021-10-12 10:12
閱讀 1802·2021-10-09 09:44
閱讀 3235·2021-10-08 10:04
閱讀 1313·2021-09-29 09:35
閱讀 1947·2019-08-30 12:57
閱讀 1303·2019-08-29 16:22