Nhảy đến nội dung

Chương 2: Thiết Lập Môi Trường Phát Triển

Thiết Lập Môi Trường Phát Triển Odoo Mô Đun

Tuỳ thuộc vào mục đích sử dụng, có nhiều cách để cài Odoo. Nếu bạn đang làm quen với bản Odoo community hoặc là nhân viên đang làm việc cho odoo, thì cách thích hợp để cài Odoo là thực hiện cài từ nguồn

Chuẩn bị môi trường 
  1. Đầu tiên bạn cần tạo một tài khoản Github account. Mình đã có tài khoản này rồi và sử dụng một thời gian khá lâu, chưa làm gì có điểm nhấn lắm. Mục đích quan trọng là để lưu trữ mã nguồn cho dự án của bạn
  2. Sau đó thêm ssh key https://github.com/settings/keys
  3. Cài Odoo (có thể sử dụng trực tiếp file tải về, ở đây mình không tải trực tiếp mà dùng git clone) Tạo thư mục ví dụ ERP sau đó (Đây là đường dẫn vào /Users/tennguoidung/ERP)
$ git clone [email protected]:odoo/odoo.git
$ git clone [email protected]:odoo/enterprise.git
$ git clone [email protected]:odoo/tutorials.git

Lưu ý để chạy liên tục, tránh tắt màn hình, quá trình tải về sẽ bị gián đoạn.

  1. Tạo git fork bạn tạo 3 phiên bản, một phiên bản fork của community, một của enterprise và một của tutorials
https://github.com/vntechsolutions/odoo
https://github.com/vntechsolutions/tutorials

Mình không có key vào enterprise nên không fork cái này ra. Thực ra bản này là được xây trên bản community với các add-ons và mô đun. 

  1. Link git with fork

Lệnh dưới đây dùng để nối git với rep fork trên github.

$ cd /CommunityPath   (/Users/tennguoidung/ERP/odoo)
$ git remote add dev [email protected]:<vntechsolutions>/odoo.git

Cụ thể cd ERP/tutorials

$ git remote add dev [email protected]:vntechsolutions/tutorials.git

Nếu bạn truy cập vào odoo/enterprice được, thì thiết lập tương tự. 

Sửa git global config do lỗi dưới đây. Để sửa file này thì sử dụng vi editor

error: key does not contain a section: clean
error: key does not contain a section: smudge
error: key does not contain a section: process
error: key does not contain a section: required

[core]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true
        autocrlf = false
[user]
        name = Ten Nguoi Dung
        email = [email protected]

$ cd /EnterprisePath
$ git remote add dev [email protected]:<your_github_account>/enterprise.git

Chạy server với odoo-bin

cd $HOME/src/odoo/
$HOME = /Users/tennguoidung
$cd /Users/tennguoidung/ERP/odoo

Sau đó

$ ./odoo-bin --addons-path="addons/,../enterprise/,../tutorials" -d rd-demo

Lỗi xuất hiện: AssertionError: Outdated python version detected, Odoo requires Python >= 3.10 to run.

Mình sửa bằng:

brew install python

Sau đó chạy lại thì xuất hiện lỗi 

ModuleNotFoundError: No module named 'PyPDF2'

Như vầy cần phải cài thêm gói PyPDF2

python3 -m pip install “PyPDF2” lệnh này không được thì dùng 

PEP 668 ([email protected]) và Môi Trường Ảo (Virtual environments)

Từ bản [email protected], Homebrew theo PEP 668.

Nếu bạn mong muốn cài gói Python không được quản lý bởi Brew như PyPI hay PyPDF2.

  • Tạo một môi trường ảo sử dụng python3 -m venv path/to/venv. Rồi sử dụng path/to/venv/bin/python và path/to/venv/bin/pip.
  • Hoặc sử dụng pipx install xyz, sẽ quản lý môi trường ảo cho bạn. Cài pipx bằng brew install pipx. Khi bạn dùng pipx để cài một ứng dụng Python, nó luôn dùng môi trường ảo cho bạn. 
  • Cũng có thể cài PyPDF2 bằng brew install PyPDF2. Nhưng cách này không được khuyến khích, mà cài bằng pip bên trong một virtualenv. Hệ thống HomeBrew thường là công thức thể, và tác dụng như là hỗ trợ phụ thuộc cho các công thức khác, nên nó không được khuyến khích phụ thuộc vào chúng.

Dùng lệnh để tạo môi trường ảo 

python3 -m venv venv

Sau đó để sử dụng pip thì có thể dùng lệnh sau đây 

venv/bin/activate

Lệnh này sẽ lên cấu hình shell hiện tại là môi trường python mặc định. 

Và bạn có thể gõ pip bình thường (lưu ý có chữ venv đằng trước chỉ môi trường ảo)

(venv) tennguoidung@NAME-MacBook-Air odoo %

Mình sử dụng cách số 2

Trước hết cài pipx bằng brew install pipx

Sau đó là 

pipx install PYPDF2

Nhưng mà lệnh trên cũng không cài được. 

“No apps associated with package pypdf2 or its dependencies. If you are attempting to install a library, pipx should not be

used. Consider using pip or a similar tool instead.” - Không có ứng dụng nào liên quan với gói pydpf2 hoặc hỗ trợ phụ thuộc của nó. Nếu bạn đang thử cái một thư viện thì pipx không nên được dùng mà dùng pi nhé.

Sau khi thử khá nhiều thì pip --v vẫn có lỗi  zsh: command not found: pip, do vậy mình sẽ dùng pip3, pip3 được cài khi chạy lệnh brew install python.

Cuối cùng thì đây là giải pháp

Lưu ý path/to/venv là đường dẫn tới file bạn có thể nó ngay trong thư mục hiện tại là /Users/tennguoidung/ERP/odoo, và lênh python3 -m venv venv sẽ tạo môi trường ảo ở /Users/tennguoidungERP/odoo/venv.

Chú ý phân biệt khi nào dùng python và python3 nhé và pip hoặc pip3.

  • python3 -m venv path/to/venv

path/to/venv/bin/python

hoặc 

path/to/venv/bin/pip install -r requirements.txt

Collecting PYPDF2

Using cached pypdf2-3.0.1-py3-none-any.whl.metadata (6.8 kB)

Using cached pypdf2-3.0.1-py3-none-any.whl (232 kB)

Installing collected packages: PYPDF2

Successfully installed PYPDF2-3.0.1

Nhưng bạn không thể cài từng gói như vậy, vì có nhiều gói phải cài tương tự như PYPDF2. Do đó bạn phải sử dụng

pip install -r requirements.txt

Để cài các gói yêu cầu.

Vấn đề là ở đây

Python 3.12.0 to 3.10.13 (using pyenv, by the way)

ERROR: Could not build wheels for greenlet, lxml, reportlab, which is required to install pyproject.toml-based projects

Bây giờ đổi bản python 

brew install pyen

Sau đó cài Python 3.10.13

pyenv install 3.10.13

Sau đó là chạy 

brew install pyenv-virtualenv

Và tạo môi trường ảo

pyenv virtualenv 3.10.13 python_3.10.13

Kích hoạt bằng 

pyenv local python_3.10.13

Sau đó mình có thể sẽ phải tắt đi bằng 

pyenv local system

Cài Python 3.10 và chuyển đổi giữa các phiên bản. 

brew install [email protected]

cd /Users/tennguoidung/ERP/odoo

python3.10 -m venv --upgrade venv

Sau đó cd venv/bin tạo symlink

ln -sf python3.10 python
ln -sf python3.10 python3

Và bỏ symlink

rm {python,pip}3.12

Chạy ngon VOILA. 

pip install -r requirements.txt (lưu ý đây là sau khi bạn đã chạy môi trường ảo với lệnh  . venv/bin/activate) - Xuất hiện (venv) đằng trước  (venv) tennguoidung@NAME-MacBook-Air odoo %

Do không có odoo/enterprise nên phải dùng bản này

./odoo-bin --addons-path="addons/,../tutorials" -d rd-demo

Tiếp đến vào đây login 

http://localhost:8069/web/login

Email: admin 

Mật khẩu: admin

Back to the course
Lecture Course

Phát Triển Odoo Mô Đun

Giá
1.000.000 ₫
Category
Thời gian khóa học
Trình độ
Cơ bản
Giá
Giá
1.000.000 ₫
Phát Triển Odoo Mô Đun
Lessons Of Course

Tài liệu