Odoo開發教程19-使用 Python 虛擬環境安裝 Odoo第一講

維護多個 Odoo 版本的代碼在 Odoo 開發中很常見,需要整理一下來保持項目在同一臺開發機器上並行。改變版本有時會需要上下文的切換。比如,現在 Odoo 的啓動執行文件是 odoobin,而在老版本中是 odoo.py。遷移到 Python 3 後又更易混淆了,我們要知道是選擇python/pip 還是 python3/pip3,這取決於使用的 Odoo 版本。
Python 有一個在同機器上管理獨立環境的工具 virtualenv。每個環境有自己的 Python 可執行文件和庫文件,僅需在使用時激活環境,然後 python 和 pip 無需指定就可以在相應的安裝了
Python 庫的環境下運行。要在 Debian/Ubuntu 上使用 virtualenv,執行如下命令:
sudo apt install virtualenv -y
如果我們使用的工作目錄是~/odoo-dev,並把 Odoo 12 源代碼克隆到~/odoo-dev/odoo 目錄中,我們可以這樣進行虛擬環境的創建:
virtualenv -p python3 ~/odoo-dev/odoo12env
source ~/odoo-dev/odoo12env/bin/activate
一旦激活了虛擬環境,我們可以在其中安裝 Odoo,可以通過 pip 來進行操作:
pip install -e ~/odoo-dev/odoo
以上代碼會將~/odoo-dev/odoo 中的 Odoo 源代碼安裝到虛擬環境中。-e 參數非常重要,這是一個可編輯安裝。它不會複製一份代碼到虛擬環境中,僅僅只是保留了一個到原地址 Odoo 代碼的引用。因爲使用到了源代碼,源代碼的修改在當前環境中也同樣生效。
Odoo 的 Python 依賴會被自動安裝,所以無需使用 requirements.txt 來進行手動安裝。我們也可以通過 pip 來安裝其它所需的 Python 庫:
pip install phonenumbers num2words psycopg2-binary watchdog xlwt
注意我們無需記住使用的是 Python 2 還是 Python 3,這裏的 pip 命令會指向正確的版本。然後就可以運行 Odoo 了,pip 安裝創建了一個 bin/odoo 命令,可在任何位置運行,無需涉及源代碼所在目錄。

“ 小貼士:如果決定使用虛擬環境,任何要使用 odoo-bin 運行的命令,都可以替換爲 odoo”

以下命令會啓動並關閉所安裝版本 Odoo,打印一些日誌信息用於確定 Odoo 版本和使用的插件:
odoo --stop-after-init
推薦的操作是將配置文件放在虛擬環境文件夾中。以下會爲我們的項目初始化一個 12-library 數據庫,並創建一個對應的 12-library.conf 文件:

odoo -c ~/odoo-dev/odoo12-env/12-library.conf -d 12-library --addonspath=~/odoo-dev/library,~/odoo-dev/odoo/addons --save --stop
自此開始,我們可通過如下命令啓動圖書項目 Odoo 服務:
odoo -c ~/odoo-dev/odoo12-env/12-library.conf
最後在完成後,通過如下命令來退出環境:
deactivate
假設我們要在同一臺機器上使用 Odoo 10 項目,它使用的是 Python 2.7,通過如下命令創建環境、安裝 Odoo:
cd ~/odoo-dev
git clone https://github.com/odoo/odoo.git -b 10.0 --depth=1 odoo10
virtualenv odoo10env
source odoo10env/bin/activate
pip install -e ./odoo10
odoo --version
deactivate # To finish working with this env.
要使得在 Odoo 版本間切換更容易,我們可以在~/odoo-dev/odoo10 目錄下再爲 10.0 分支克隆一份源代碼。然後創建虛擬環境,激活環境,使用 pip 創建一個 Odoo 10 可編輯安裝。
virtualenv 沒有使用-p 參數指定 Python 版本,默認爲 Python 2,也就是 Odoo 10 所需的版本。
如果系統中沒有 Python 2,Ubuntu 18.04 默認就不帶 Python 2,則需要執行如下命令來進行安裝:
sudo apt install python-dev

更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/odoo12-teach/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章